libxputty 0.1
Loading...
Searching...
No Matches
Functions
xlistview_private.c File Reference

Go to the source code of this file.

Functions

void _draw_listview (void *w_, void *user_data)
 _draw_listview - draw listview on expose call
 
void _draw_list (void *w_, void *user_data)
 _draw_list - draw list on expose call
 
void _update_list_view (void *w_)
 
void _list_motion (void *w_, void *xmotion_, void *user_data)
 _list_motion - follow mouse pointer to set prelight item
 
void _list_key_pressed (void *w_, void *xkey_, void *user_data)
 _list_key_pressed - move listview or set active entry
 
void _list_entry_released (void *w_, void *button_, void *user_data)
 _list_entry_released - move listview or set active entry
 
void _list_entry_double_clicked (void *w_, void *button_, void *user_data)
 _list_entry_double_clicke - forward double click from list entry to list view
 
void _leave_list (void *w_, void *user_data)
 _leave_list - draw list on pointer leave
 
void _reconfigure_listview_viewport (void *w_, void *user_data)
 _reconfigure_listview_viewport - reconfigure the viewport adjustment on size changes
 
void _configure_listview (void *w_, void *user_data)
 _configure_listview - configure the viewport on mapping
 
void _set_listview_viewpoint (void *w_, void *user_data)
 _set_listview_viewpoint - move the view_port to position
 
void _draw_listviewslider (void *w_, void *user_data)
 _draw_listviewslider - draw a slider on the viewport to indicate the view point
 
void _set_listviewport (void *w_, void *user_data)
 _set_listviewport - move the view_port to position by listviewslider state
 

Function Documentation

◆ _configure_listview()

void _configure_listview ( void *  w_,
void *  user_data 
)

_configure_listview - configure the viewport on mapping

Parameters
*w_- void pointer to view_port
*user_data- attached user_data

Definition at line 306 of file xlistview_private.c.

306 {
307 Widget_t *w = (Widget_t*)w_;
308 Widget_t* listview = (Widget_t*) w->parent;
309 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
310 Metrics_t metrics;
311 os_get_window_metrics(listview, &metrics);
312 int height = metrics.height;
313 int width = metrics.width;
314 filelist->show_items = height/25;
315 filelist->slider->adj->step = max(0.0,1.0/(filelist->list_size-filelist->show_items));
316 adj_set_scale(filelist->slider->adj, ((float)filelist->list_size/(float)filelist->show_items)/25.0);
317 os_resize_window (w->app->dpy, w, width, height);
318}
Metrics_t - struct to receive window size, position & visibility Pass this struct to os_get_window_...
ViewList_t - struct to hold information for the listview.
Definition xlistview.h:42
int list_size
Definition xlistview.h:52
Widget_t * slider
Definition xlistview.h:44
int show_items
Definition xlistview.h:51
Widget_t - struct to hold the basic Widget_t info.
Definition xwidget.h:457
Adjustment_t * adj
Definition xwidget.h:497
void * parent
Definition xwidget.h:471
void adj_set_scale(Adjustment_t *adj, float value)
adj_set_scale - internal use to scale the pointer movement (0.1 -1.0)
void os_get_window_metrics(Widget_t *w, Metrics_t *metrics)
os_get_window_metrics - Get the Merics_t struct related to a Widget_t
void os_resize_window(Display *dpy, Widget_t *w, int x, int y)
os_resize_window - Resize a Widget_t

References Widget_t::adj, adj_set_scale(), Widget_t::app, Xputty::dpy, Metrics_t::height, ViewList_t::list_size, os_get_window_metrics(), os_resize_window(), Widget_t::parent, Widget_t::parent_struct, ViewList_t::show_items, ViewList_t::slider, Adjustment_t::step, and Metrics_t::width.

Referenced by create_listview_viewport(), and listview_set_list().

◆ _draw_list()

void _draw_list ( void *  w_,
void *  user_data 
)

_draw_list - draw list on expose call

Parameters
*w_- the Widget_t to draw
*user_data- attached user_data

show label

Definition at line 34 of file xlistview_private.c.

34 {
35 Widget_t *w = (Widget_t*)w_;
36 Metrics_t metrics;
37 os_get_window_metrics(w, &metrics);
38 int width = metrics.width;
39 int height = metrics.height;
40 if (!metrics.visible) return;
41 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
42
44 cairo_rectangle(w->crb, 0, 0, width, height);
45 cairo_fill (w->crb);
46 cairo_set_font_size (w->crb, min(w->app->big_font ,w->app->normal_font/w->scale.ascale));
47 cairo_text_extents_t extents;
48 cairo_text_extents(w->crb,"Ay", &extents);
49 double h = extents.height;
50
51 int i = (int)max(0,adj_get_value(w->adj));
52 int a = 0;
53 int j = filelist->list_size<filelist->show_items+i+1 ?
54 filelist->list_size : filelist->show_items+i+1;
55 for(;i<j;i++) {
56 if(i == filelist->prelight_item && i == filelist->active_item)
58 else if(i == filelist->prelight_item)
60 else if (i == filelist->active_item)
62 else
64 cairo_rectangle(w->crb, 0, a*25, width, 25);
65 cairo_fill_preserve(w->crb);
66 cairo_set_line_width(w->crb, 1.0);
68 cairo_stroke(w->crb);
69
71 if(i == filelist->prelight_item && i == filelist->active_item)
73 else if(i == filelist->prelight_item)
75 else if (i == filelist->active_item)
77 else
79
80 if (filelist->check_dir) {
81 if (os_is_directory(filelist->list_names[i])) {
82 cairo_scale(w->crb,0.08, 0.08);
83 cairo_set_source_surface (w->crb, filelist->folder,1.0*12.5,((double)a+0.1)*25.0*12.5);
84 cairo_paint (w->crb);
85 cairo_scale(w->crb,12.5, 12.5);
87 } else {
88 cairo_scale(w->crb,0.08, 0.08);
89 cairo_set_source_surface (w->crb, filelist->file,1.0*12.5,((double)a+0.1)*25.0*12.5);
90 cairo_paint (w->crb);
91 cairo_scale(w->crb,12.5, 12.5);
93 }
94 }
95 cairo_text_extents(w->crb,filelist->list_names[i] , &extents);
96
97 cairo_move_to (w->crb, 20, (25.0*((double)a+1.0))+3.0 - (h*max(0.71,w->scale.ascale)));
98 cairo_show_text(w->crb, filelist->list_names[i]);
99 cairo_new_path (w->crb);
100 if (i == filelist->prelight_item && extents.width > (float)width-20) {
101 tooltip_set_text(w,filelist->list_names[i]);
102 w->flags |= HAS_TOOLTIP;
103 show_tooltip(w);
104 } else if (i == filelist->prelight_item && extents.width < (float)width-20){
105 w->flags &= ~HAS_TOOLTIP;
106 hide_tooltip(w);
107 }
108 a++;
109 }
110}
float ascale
Definition xwidget.h:369
Resize_t scale
Definition xwidget.h:525
cairo_t * crb
Definition xwidget.h:489
long long flags
Definition xwidget.h:461
void * parent_struct
Definition xwidget.h:473
Xputty * app
Definition xwidget.h:465
int big_font
Definition xputty.h:250
int normal_font
Definition xputty.h:248
float adj_get_value(Adjustment_t *adj)
adj_get_value - get the current value of the Adjustment_t
void use_frame_color_scheme(Widget_t *w, Color_state st)
use_frame_color_scheme - use frame Colors to paint on Widget_t
Definition xcolor.c:280
void use_text_color_scheme(Widget_t *w, Color_state st)
use_text_color_scheme - use text Colors to paint on Widget_t
Definition xcolor.c:266
void use_base_color_scheme(Widget_t *w, Color_state st)
use_base_color_scheme - use base Colors to paint on Widget_t
Definition xcolor.c:259
@ NORMAL_
Definition xcolor.h:44
@ INSENSITIVE_
Definition xcolor.h:48
@ SELECTED_
Definition xcolor.h:46
@ PRELIGHT_
Definition xcolor.h:45
@ ACTIVE_
Definition xcolor.h:47
void tooltip_set_text(Widget_t *w, const char *label)
tooltip_set_text - set a (new) text to a tooltip for Widget_t
Definition xtooltip.c:25
bool os_is_directory(const char *filename)
os_is directory - check if a given path is a directory or a file
void show_tooltip(Widget_t *wid)
show_tooltip - check if a Widget_t have a tooltip, and show it, if a tooltip is available.
Definition xwidget.c:419
@ HAS_TOOLTIP
Definition xwidget.h:404
void hide_tooltip(Widget_t *wid)
hide_tooltip - check if a Widget_t have a tooltip, and hide it, if a tooltip is mapped.
Definition xwidget.c:430

References ACTIVE_, ViewList_t::active_item, Widget_t::adj, adj_get_value(), Widget_t::app, Resize_t::ascale, Xputty::big_font, ViewList_t::check_dir, Widget_t::crb, ViewList_t::file, Widget_t::flags, ViewList_t::folder, HAS_TOOLTIP, Metrics_t::height, hide_tooltip(), INSENSITIVE_, ViewList_t::list_names, ViewList_t::list_size, NORMAL_, Xputty::normal_font, os_get_window_metrics(), os_is_directory(), Widget_t::parent_struct, PRELIGHT_, ViewList_t::prelight_item, Widget_t::scale, SELECTED_, ViewList_t::show_items, show_tooltip(), tooltip_set_text(), use_base_color_scheme(), use_frame_color_scheme(), use_text_color_scheme(), Metrics_t::visible, and Metrics_t::width.

Referenced by create_listview_viewport().

◆ _draw_listview()

void _draw_listview ( void *  w_,
void *  user_data 
)

_draw_listview - draw listview on expose call

Parameters
*w_- the listview to draw
*user_data- attached user_data

Definition at line 27 of file xlistview_private.c.

27 {
28 Widget_t *w = (Widget_t*)w_;
29 if (!w) return;
31 cairo_paint (w->cr);
32}
XColor_t * color_scheme
Definition xwidget.h:467
cairo_t * cr
Definition xwidget.h:485
Colors normal
Definition xcolor.h:106
Colors active
Definition xcolor.h:109
@ BACKGROUND_
Definition xcolor.h:65
void set_pattern(Widget_t *w, Colors *from, Colors *to, Color_mod mod)
set_pattern - set pattern for the selected Colors
Definition xcolor.c:308

References XColor_t::active, BACKGROUND_, Widget_t::color_scheme, Widget_t::cr, XColor_t::normal, and set_pattern().

Referenced by add_listview().

◆ _draw_listviewslider()

void _draw_listviewslider ( void *  w_,
void *  user_data 
)

_draw_listviewslider - draw a slider on the viewport to indicate the view point

Parameters
*w_- void pointer to view_port
*user_data- attached user_data

Definition at line 327 of file xlistview_private.c.

327 {
328 Widget_t *w = (Widget_t*)w_;
329 Widget_t* view_port = (Widget_t*)w->parent_struct;
330 ViewList_t *filelist = (ViewList_t*)view_port->parent_struct;
331 int v = (int)w->adj->max_value;
332 if (!v) return;
333 Metrics_t metrics;
334 os_get_window_metrics(w, &metrics);
335 int width = metrics.width;
336 int height = metrics.height;
337 if (!metrics.visible) return;
338 int show_items = height/25;
339 float slidersize = 1.0;
340 if (filelist->list_size > show_items)
341 slidersize = (float)((float)show_items/(float)filelist->list_size);
342 float sliderstate = adj_get_state(w->adj);
344 cairo_rectangle(w->crb, 0,0,width,height);
345 cairo_fill_preserve(w->crb);
347 cairo_fill(w->crb);
349 cairo_rectangle(w->crb, 0,((float)height-
350 ((float)height*slidersize))*sliderstate,width,((float)height*slidersize));
351 cairo_fill(w->crb);
352}
float adj_get_state(Adjustment_t *adj)
adj_get_state - get the current state of the Adjustment_t
Color_state get_color_state(Widget_t *wid)
get_color_state - get the Color_state to use in relation to the Widget_t state
Definition xcolor.c:222
void use_bg_color_scheme(Widget_t *w, Color_state st)
use_bg_color_scheme - use background Colors to paint on Widget_t
Definition xcolor.c:252
void use_shadow_color_scheme(Widget_t *w, Color_state st)
use_shadow_color_scheme - use shadow Colors to paint on Widget_t
Definition xcolor.c:273

References Widget_t::adj, adj_get_state(), Widget_t::crb, get_color_state(), Metrics_t::height, ViewList_t::list_size, Adjustment_t::max_value, NORMAL_, os_get_window_metrics(), Widget_t::parent_struct, use_bg_color_scheme(), use_shadow_color_scheme(), Metrics_t::visible, and Metrics_t::width.

Referenced by add_listview().

◆ _leave_list()

void _leave_list ( void *  w_,
void *  user_data 
)

_leave_list - draw list on pointer leave

Parameters
*w_- the Widget_t to draw
*user_data- attached user_data

Definition at line 286 of file xlistview_private.c.

286 {
287 Widget_t *w = (Widget_t*)w_;
288 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
289 filelist->prelight_item = -1;
290 expose_widget(w);
291}
void expose_widget(Widget_t *w)
expose_widgets - send a expose event (EXPOSE) to a Widget_t
Definition xwidget.c:445

References expose_widget(), Widget_t::parent_struct, and ViewList_t::prelight_item.

Referenced by create_listview_viewport().

◆ _list_entry_double_clicked()

void _list_entry_double_clicked ( void *  w_,
void *  button_,
void *  user_data 
)

_list_entry_double_clicke - forward double click from list entry to list view

Parameters
*w_- void pointer to the Widget_t listview
*button_- void pointer to the XButtonEvent
*user_data- void pointer to attached user_data

Definition at line 272 of file xlistview_private.c.

272 {
273 Widget_t *w = (Widget_t*)w_;
274 Widget_t* listview = (Widget_t*) w->parent;
275 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
276 XButtonEvent *xbutton = (XButtonEvent*)button_;
277 Metrics_t metrics;
278 os_get_window_metrics(w, &metrics);
279 int height = metrics.height;
280 int _items = height/(height/25);
281 int prelight_item = xbutton->y/_items + (int)max(0,adj_get_value(w->adj));
282 if (prelight_item > filelist->list_size-1) return;
283 listview->func.double_click_callback(listview,button_,NULL);
284}

References Widget_t::adj, adj_get_value(), Func_t::double_click_callback, Widget_t::func, Metrics_t::height, ViewList_t::list_size, os_get_window_metrics(), Widget_t::parent, Widget_t::parent_struct, and XEvent::y.

Referenced by create_listview_viewport().

◆ _list_entry_released()

void _list_entry_released ( void *  w_,
void *  button_,
void *  user_data 
)

_list_entry_released - move listview or set active entry

Parameters
*w_- void pointer to the Widget_t listview
*button_- void pointer to the XButtonEvent
*user_data- void pointer to attached user_data

Definition at line 244 of file xlistview_private.c.

244 {
245 Widget_t *w = (Widget_t*)w_;
246 if (w->flags & HAS_POINTER) {
247 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
248 XButtonEvent *xbutton = (XButtonEvent*)button_;
249 Metrics_t metrics;
250 os_get_window_metrics(w, &metrics);
251 int height = metrics.height;
252 int _items = height/(height/25);
253 int prelight_item = xbutton->y/_items + (int)max(0,adj_get_value(w->adj));
254 if (prelight_item > filelist->list_size-1) return;
255 if(xbutton->button == Button4) {
256 if(prelight_item != filelist->prelight_item) {
257 filelist->prelight_item = prelight_item;
258 }
259 } else if (xbutton->button == Button5) {
260 if(prelight_item != filelist->prelight_item) {
261 filelist->prelight_item = prelight_item;
262 }
263 } else if(xbutton->button == Button1) {
264 Widget_t* listview = (Widget_t*) w->parent;
265 filelist->active_item = filelist->prelight_item;
266 adj_set_value(listview->adj,filelist->active_item);
267 listview->func.button_release_callback(listview,xbutton,user_data);
268 }
269 }
270}
int button
void adj_set_value(Adjustment_t *adj, float value)
adj_set_value - set the current value to the Adjustment_t
@ HAS_POINTER
Definition xwidget.h:402

References ViewList_t::active_item, Widget_t::adj, adj_get_value(), adj_set_value(), XEvent::button, Func_t::button_release_callback, Widget_t::flags, Widget_t::func, HAS_POINTER, Metrics_t::height, ViewList_t::list_size, os_get_window_metrics(), Widget_t::parent, Widget_t::parent_struct, ViewList_t::prelight_item, and XEvent::y.

Referenced by create_listview_viewport().

◆ _list_key_pressed()

void _list_key_pressed ( void *  w_,
void *  xkey_,
void *  user_data 
)

_list_key_pressed - move listview or set active entry

Parameters
*w_- void pointer to the Widget_t listview
*xkey_- void pointer to the XKeyEvent
*user_data- void pointer to attached user_data

Definition at line 219 of file xlistview_private.c.

219 {
220 Widget_t *w = (Widget_t*)w_;
221 Widget_t* listview = (Widget_t*) w->parent;
222 XKeyEvent *xkey = (XKeyEvent*)xkey_;
223 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
224 Metrics_t metrics;
225 os_get_window_metrics(w, &metrics);
226 int height = metrics.height;
227 int _items = height/(height/25);
228 filelist->prelight_item = xkey->y/_items + (int)max(0,adj_get_value(w->adj));
229 int nk = key_mapping(w->app->dpy, xkey);
230 if (nk) {
231 switch (nk) {
232 case 3:
233 case 4:
234 case 5:
235 case 6: filelist->prelight_item = xkey->y/_items + (int)max(0,adj_get_value(w->adj));
236 break;
237 default:
238 break;
239 }
240 }
241 listview->func.key_press_callback(listview, xkey_, user_data);
242}
int prelight_item
Definition xlistview.h:47
int key_mapping(Display *dpy, XKeyEvent *xkey)
_key_mapping - modifier key's mapped to a integer value
Definition xwidget.c:37

References Widget_t::adj, adj_get_value(), Widget_t::app, Xputty::dpy, Widget_t::func, Metrics_t::height, key_mapping(), Func_t::key_press_callback, os_get_window_metrics(), Widget_t::parent, Widget_t::parent_struct, ViewList_t::prelight_item, and XEvent::y.

Referenced by create_listview_viewport().

◆ _list_motion()

void _list_motion ( void *  w_,
void *  xmotion_,
void *  user_data 
)

_list_motion - follow mouse pointer to set prelight item

Parameters
*w_- void pointer to the Widget_t listview
*xmotion_- void pointer to the XMotionEvent
*user_data- void pointer to attached user_data

Definition at line 202 of file xlistview_private.c.

202 {
203 Widget_t *w = (Widget_t*)w_;
204 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
205 XMotionEvent *xmotion = (XMotionEvent*)xmotion_;
206 Metrics_t metrics;
207 os_get_window_metrics(w, &metrics);
208 int height = metrics.height;
209 int _items = height/(height/25);
210 int prelight_item = (xmotion->y/_items) + (int)max(0,adj_get_value(w->adj));
211 if(prelight_item != filelist->prelight_item) {
212 filelist->prev_prelight_item = filelist->prelight_item;
213 filelist->prelight_item = prelight_item;
214 hide_tooltip(w);
216 }
217}
void _update_list_view(void *w_)

References _update_list_view(), Widget_t::adj, adj_get_value(), Metrics_t::height, hide_tooltip(), os_get_window_metrics(), Widget_t::parent_struct, ViewList_t::prelight_item, ViewList_t::prev_prelight_item, and XEvent::y.

Referenced by create_listview_viewport().

◆ _reconfigure_listview_viewport()

void _reconfigure_listview_viewport ( void *  w_,
void *  user_data 
)

_reconfigure_listview_viewport - reconfigure the viewport adjustment on size changes

Parameters
*w_- void pointer to view_port
*user_data- attached user_data

Definition at line 293 of file xlistview_private.c.

293 {
294 Widget_t *w = (Widget_t*)w_;
295 float st = adj_get_state(w->adj);
296 Widget_t* listview = (Widget_t*) w->parent;
297 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
298 Metrics_t metrics;
299 os_get_window_metrics(listview, &metrics);
300 int height = metrics.height;
301 filelist->show_items = height/25;
302 w->adj->max_value = filelist->list_size-filelist->show_items;
303 adj_set_state(w->adj,st);
304}
void adj_set_state(Adjustment_t *adj, float state)
adj_set_state - set the current state of the Adjustment_t

References Widget_t::adj, adj_get_state(), adj_set_state(), Metrics_t::height, ViewList_t::list_size, Adjustment_t::max_value, os_get_window_metrics(), Widget_t::parent, Widget_t::parent_struct, and ViewList_t::show_items.

Referenced by create_listview_viewport().

◆ _set_listview_viewpoint()

void _set_listview_viewpoint ( void *  w_,
void *  user_data 
)

_set_listview_viewpoint - move the view_port to position

Parameters
*w_- void pointer to view_port
*user_data- attached user_data

Definition at line 320 of file xlistview_private.c.

320 {
321 Widget_t *w = (Widget_t*)w_;
322 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
323 adj_set_state(filelist->slider->adj,adj_get_state(w->adj));
324 expose_widget(w);
325}

References Widget_t::adj, adj_get_state(), adj_set_state(), expose_widget(), Widget_t::parent_struct, and ViewList_t::slider.

Referenced by create_listview_viewport().

◆ _set_listviewport()

void _set_listviewport ( void *  w_,
void *  user_data 
)

_set_listviewport - move the view_port to position by listviewslider state

Parameters
*w_- void pointer to view_port
*user_data- attached user_data

Definition at line 354 of file xlistview_private.c.

354 {
355 Widget_t *w = (Widget_t*)w_;
356 Widget_t *viewport = (Widget_t*)w->parent_struct;
357 adj_set_state(viewport->adj, adj_get_state(w->adj));
358 expose_widget(w);
359}

References Widget_t::adj, adj_get_state(), adj_set_state(), expose_widget(), and Widget_t::parent_struct.

Referenced by add_listview().

◆ _update_list_view()

void _update_list_view ( void *  w_)

show label

Definition at line 112 of file xlistview_private.c.

112 {
113 Widget_t *w = (Widget_t*)w_;
114 Metrics_t metrics;
115 os_get_window_metrics(w, &metrics);
116 int width = metrics.width;
117 ViewList_t *filelist = (ViewList_t*)w->parent_struct;
118
119 cairo_push_group (w->crb);
121 cairo_set_font_size (w->crb, min(w->app->big_font ,w->app->normal_font/w->scale.ascale));
122 cairo_text_extents_t extents;
123 cairo_text_extents(w->crb,"Ay", &extents);
124 double h = extents.height;
125
126 int i = (int)max(0,adj_get_value(w->adj));
127 int a = 0;
128 int j = filelist->list_size<filelist->show_items+i+1 ?
129 filelist->list_size : filelist->show_items+i+1;
130 for(;i<j;i++) {
131 if (i != filelist->prelight_item && i != filelist->prev_prelight_item) {
132 if (i<j-1) {
133 a++;
134 }
135 continue;
136 }
137 if(i == filelist->prelight_item && i == filelist->active_item)
139 else if(i == filelist->prelight_item)
141 else if (i == filelist->active_item)
143 else
145 cairo_rectangle(w->crb, 0, a*25, width, 25);
146 cairo_fill_preserve(w->crb);
147 cairo_set_line_width(w->crb, 1.0);
149 cairo_stroke(w->crb);
150
152 if(i == filelist->prelight_item && i == filelist->active_item)
154 else if(i == filelist->prelight_item)
156 else if (i == filelist->active_item)
158 else
160
161 if (filelist->check_dir) {
162 struct stat sb;
163 if (stat(filelist->list_names[i], &sb) == 0 && S_ISDIR(sb.st_mode)) {
164 cairo_scale(w->crb,0.08, 0.08);
165 cairo_set_source_surface (w->crb, filelist->folder,1.0*12.5,((double)a+0.1)*25.0*12.5);
166 cairo_paint (w->crb);
167 cairo_scale(w->crb,12.5, 12.5);
169 } else {
170 cairo_scale(w->crb,0.08, 0.08);
171 cairo_set_source_surface (w->crb, filelist->file,1.0*12.5,((double)a+0.1)*25.0*12.5);
172 cairo_paint (w->crb);
173 cairo_scale(w->crb,12.5, 12.5);
175 }
176 }
177 cairo_text_extents(w->crb,filelist->list_names[i] , &extents);
178
179 cairo_move_to (w->crb, 20, (25.0*((double)a+1.0))+3.0 - (h*max(0.71,w->scale.ascale)));
180 cairo_show_text(w->crb, filelist->list_names[i]);
181 cairo_new_path (w->crb);
182 if (i == filelist->prelight_item && extents.width > (float)width-20) {
183 tooltip_set_text(w,filelist->list_names[i]);
184 w->flags |= HAS_TOOLTIP;
185 show_tooltip(w);
186 } else if (i == filelist->prelight_item && extents.width < (float)width-20){
187 w->flags &= ~HAS_TOOLTIP;
188 hide_tooltip(w);
189 }
190 a++;
191 }
192 cairo_pop_group_to_source (w->crb);
193 cairo_paint (w->crb);
194 cairo_push_group (w->cr);
195 cairo_set_source_surface (w->cr, w->buffer,0,0);
196 cairo_paint (w->cr);
197
198 cairo_pop_group_to_source (w->cr);
199 cairo_paint (w->cr);
200}

References ACTIVE_, ViewList_t::active_item, Widget_t::adj, adj_get_value(), Widget_t::app, Resize_t::ascale, Xputty::big_font, Widget_t::buffer, ViewList_t::check_dir, Widget_t::cr, Widget_t::crb, ViewList_t::file, Widget_t::flags, ViewList_t::folder, HAS_TOOLTIP, hide_tooltip(), INSENSITIVE_, ViewList_t::list_names, ViewList_t::list_size, NORMAL_, Xputty::normal_font, os_get_window_metrics(), Widget_t::parent_struct, PRELIGHT_, ViewList_t::prelight_item, ViewList_t::prev_prelight_item, Widget_t::scale, SELECTED_, ViewList_t::show_items, show_tooltip(), tooltip_set_text(), use_base_color_scheme(), use_frame_color_scheme(), use_text_color_scheme(), and Metrics_t::width.

Referenced by _list_motion().