~njpatel/gwibber/libgwibber-o-client-njpatel

« back to all changes in this revision

Viewing changes to libgwibber-gtk/stream-view.vala

  • Committer: Neil Jagdish Patel
  • Date: 2011-06-12 17:50:10 UTC
  • Revision ID: neil.patel@canonical.com-20110612175010-izpze4mdu5tf3jva
- More cleanup
- Add support for keynav (at the moment you need to highlight something the view for it to work, need to forward events from the main window when we can)

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
    private Dee.Model? _stream_filter_model = null;
31
31
    private Dee.Filter *stream_filter;
32
32
    private Dee.Filter *sort_filter;
33
 
    private uint _position = 0;
 
33
    private int _position = 0;
34
34
    private string _stream = "messages";
35
35
    private string _sort_order = "desc";
36
36
    private uint refresh_id = 0;
37
 
    private uint draw_id = 0;
38
 
    private uint tiles_visible = 0;
 
37
    private int tiles_visible = 0;
39
38
 
40
39
    public Dee.Model model {
41
40
      get { return _model; }
70
69
      }
71
70
    }
72
71
 
73
 
    public uint position {
 
72
    public int position {
74
73
      get { return _position; }
75
74
      set {
76
75
        if (_position != value)
77
76
          {
78
77
            _position = value;
79
 
            value = value.clamp (0, stream_filter_model.get_n_rows ());
80
 
            adjustment.set_value (value);
 
78
            _position = _position.clamp (0, (int)stream_filter_model.get_n_rows ());
 
79
 
 
80
            adjustment.set_value (_position);
81
81
            refresh ();
82
82
          }
83
83
      }
126
126
    {
127
127
      adjustment = new Gtk.Adjustment (0, 0, 1, 1, 1, 1);
128
128
      adjustment.notify["value"].connect (()=> {
129
 
        position = (uint)adjustment.get_value();
 
129
        position = (int)adjustment.get_value();
130
130
        refresh ();
131
131
      });
132
132
 
138
138
 
139
139
      scrollbar = new Gtk.VScrollbar (adjustment);
140
140
      pack_start (scrollbar, false, false, 0);
 
141
     
 
142
      
141
143
      set_events(Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.SCROLL_MASK);
142
144
      scroll_event.connect ((source, event) => {
143
145
        Gdk.ScrollDirection direction = event.direction;
157
159
        }
158
160
      });
159
161
 
 
162
      key_press_event.connect ((source, event) => {
 
163
        var key = event.keyval;
 
164
 
 
165
        switch (event.keyval)
 
166
        {
 
167
          case 0xff55: // *_Page_Up
 
168
          case 0xff9a:
 
169
            position -= tiles_visible;
 
170
            break;
 
171
          case 0xff56: // *_Page_Down
 
172
          case 0xff9b:
 
173
            position += tiles_visible;
 
174
            break;
 
175
          case 0xff54: // *_Down
 
176
          case 0xff99:
 
177
            position += 1;
 
178
            break;
 
179
          case 0xff52: // *_Up
 
180
          case 0xff97:
 
181
            position -= 1;
 
182
            break;
 
183
          default:
 
184
            return false;
 
185
        }
 
186
        return true;
 
187
      });
 
188
 
 
189
 
160
190
      for (int i = 0; i < 10; i++)
161
191
        {
162
192
          var tile = new StreamViewTile ();
198
228
     */
199
229
    private void do_refresh ()
200
230
    {
201
 
      uint i = 0;
 
231
      int i = 0;
202
232
 
203
233
      fill_up_remaining_space ();
204
234
      if (!(stream_filter_model is Dee.FilterModel))
282
312
          overall_height -= b.height;
283
313
          tile.reset();
284
314
          tiles.remove(tile);
285
 
          tiles_visible = tiles.length ();
 
315
          tiles_visible = (int)tiles.length ();
286
316
      }
287
317
 
288
318
      Idle.add (()=>{