comparison gtk3/dw.c @ 784:fb21fdd6b839

Slight code cleanup.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 21 Mar 2011 23:20:18 +0000
parents 9ef49898a5e6
children a86c54519de0
comparison
equal deleted inserted replaced
783:9ef49898a5e6 784:fb21fdd6b839
2334 text_width = 240; 2334 text_width = 240;
2335 text_height = 0; 2335 text_height = 0;
2336 stext = dw_text_new(outbuf, 0); 2336 stext = dw_text_new(outbuf, 0);
2337 dw_window_set_style(stext, DW_DT_WORDBREAK, DW_DT_WORDBREAK); 2337 dw_window_set_style(stext, DW_DT_WORDBREAK, DW_DT_WORDBREAK);
2338 dw_font_text_extents_get(stext, NULL, outbuf, &width, &height); 2338 dw_font_text_extents_get(stext, NULL, outbuf, &width, &height);
2339 #if 0 2339
2340 height = height+3; 2340 text_width = min( width, dw_screen_width() - extra_width - 100 );
2341 if(width < text_width) 2341 text_height = min( height, dw_screen_height() );
2342 text_height = height*2; 2342
2343 else if(width < text_width*2)
2344 text_height = height*3;
2345 else if(width < text_width*3)
2346 text_height = height*4;
2347 else /* width > (3*text_width) */
2348 {
2349 text_width = (width / 3) + 60;
2350 text_height = height*4;
2351 }
2352 #else
2353 text_width = min( width, dw_screen_width() - extra_width - 100 );
2354 text_height = min( height, dw_screen_height() );
2355 #endif
2356 dw_box_pack_start(texttargetbox, stext, text_width, text_height, TRUE, TRUE, 2); 2343 dw_box_pack_start(texttargetbox, stext, text_width, text_height, TRUE, TRUE, 2);
2357 2344
2358 /* Buttons */ 2345 /* Buttons */
2359 buttonbox = dw_box_new(DW_HORZ, 10); 2346 buttonbox = dw_box_new(DW_HORZ, 10);
2360 2347
2429 { 2416 {
2430 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_ICONIFIED); 2417 gtk_mdi_set_state(GTK_MDI(mdi), handle, CHILD_ICONIFIED);
2431 } 2418 }
2432 else 2419 else
2433 { 2420 {
2434 #if 0
2435 XIconifyWindow(GDK_WINDOW_XDISPLAY(GTK_WIDGET(handle)->window),
2436 GDK_WINDOW_XWINDOW(GTK_WIDGET(handle)->window),
2437 DefaultScreen (GDK_DISPLAY ()));
2438 #else
2439 gtk_window_iconify( GTK_WINDOW(handle) ); 2421 gtk_window_iconify( GTK_WINDOW(handle) );
2440 #endif
2441 } 2422 }
2442 DW_MUTEX_UNLOCK; 2423 DW_MUTEX_UNLOCK;
2443 return 0; 2424 return 0;
2444 } 2425 }
2445 2426
3157 if(top) 3138 if(top)
3158 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_TOP); 3139 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_TOP);
3159 else 3140 else
3160 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_BOTTOM); 3141 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tmp), GTK_POS_BOTTOM);
3161 gtk_notebook_set_scrollable(GTK_NOTEBOOK(tmp), TRUE); 3142 gtk_notebook_set_scrollable(GTK_NOTEBOOK(tmp), TRUE);
3162 #if 0
3163 gtk_notebook_popup_enable(GTK_NOTEBOOK(tmp));
3164 #endif
3165 gtk_widget_show(tmp); 3143 gtk_widget_show(tmp);
3166 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); 3144 g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));
3167 g_object_set_data(G_OBJECT(tmp), "_dw_pagearray", (gpointer)pagearray); 3145 g_object_set_data(G_OBJECT(tmp), "_dw_pagearray", (gpointer)pagearray);
3168 DW_MUTEX_UNLOCK; 3146 DW_MUTEX_UNLOCK;
3169 return tmp; 3147 return tmp;
5376 { 5354 {
5377 int z; 5355 int z;
5378 char numbuf[20]; 5356 char numbuf[20];
5379 GtkWidget *tree; 5357 GtkWidget *tree;
5380 GtkListStore *store; 5358 GtkListStore *store;
5381 GtkTreeViewColumn *col, *expander = NULL; 5359 GtkTreeViewColumn *col;
5382 GtkCellRenderer *rend; 5360 GtkCellRenderer *rend;
5383 GtkTreeSelection *sel; 5361 GtkTreeSelection *sel;
5384 int _locked_by_me = FALSE; 5362 int _locked_by_me = FALSE;
5385 GType *array = calloc(count + 2, sizeof(gint)); 5363 GType *array = calloc(count + 2, sizeof(gint));
5386 5364
5431 gtk_tree_view_column_pack_start(col, rend, FALSE); 5409 gtk_tree_view_column_pack_start(col, rend, FALSE);
5432 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", z+1); 5410 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", z+1);
5433 } 5411 }
5434 else if(flags[z] & DW_CFA_STRING) 5412 else if(flags[z] & DW_CFA_STRING)
5435 { 5413 {
5436 if(!expander)
5437 {
5438 expander = col;
5439 }
5440 rend = gtk_cell_renderer_text_new(); 5414 rend = gtk_cell_renderer_text_new();
5441 gtk_tree_view_column_pack_start(col, rend, TRUE); 5415 gtk_tree_view_column_pack_start(col, rend, TRUE);
5442 gtk_tree_view_column_add_attribute(col, rend, "text", z+1); 5416 gtk_tree_view_column_add_attribute(col, rend, "text", z+1);
5417 gtk_tree_view_column_set_resizable(col, TRUE);
5443 } 5418 }
5444 else if(flags[z] & DW_CFA_ULONG) 5419 else if(flags[z] & DW_CFA_ULONG)
5445 { 5420 {
5446 rend = gtk_cell_renderer_text_new(); 5421 rend = gtk_cell_renderer_text_new();
5447 gtk_tree_view_column_pack_start(col, rend, TRUE); 5422 gtk_tree_view_column_pack_start(col, rend, TRUE);
5448 gtk_tree_view_column_add_attribute(col, rend, "text", z+1); 5423 gtk_tree_view_column_add_attribute(col, rend, "text", z+1);
5424 gtk_tree_view_column_set_resizable(col, TRUE);
5449 } 5425 }
5450 else if(flags[z] & DW_CFA_TIME) 5426 else if(flags[z] & DW_CFA_TIME)
5451 { 5427 {
5452 rend = gtk_cell_renderer_text_new(); 5428 rend = gtk_cell_renderer_text_new();
5453 gtk_tree_view_column_pack_start(col, rend, TRUE); 5429 gtk_tree_view_column_pack_start(col, rend, TRUE);
5454 gtk_tree_view_column_add_attribute(col, rend, "text", z+1); 5430 gtk_tree_view_column_add_attribute(col, rend, "text", z+1);
5431 gtk_tree_view_column_set_resizable(col, TRUE);
5455 } 5432 }
5456 else if(flags[z] & DW_CFA_DATE) 5433 else if(flags[z] & DW_CFA_DATE)
5457 { 5434 {
5458 rend = gtk_cell_renderer_text_new(); 5435 rend = gtk_cell_renderer_text_new();
5459 gtk_tree_view_column_pack_start(col, rend, TRUE); 5436 gtk_tree_view_column_pack_start(col, rend, TRUE);
5460 gtk_tree_view_column_add_attribute(col, rend, "text", z+1); 5437 gtk_tree_view_column_add_attribute(col, rend, "text", z+1);
5438 gtk_tree_view_column_set_resizable(col, TRUE);
5461 } 5439 }
5462 gtk_tree_view_column_set_title(col, titles[z]); 5440 gtk_tree_view_column_set_title(col, titles[z]);
5463 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); 5441 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col);
5464 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), col);
5465 } 5442 }
5466 /* Finish up */ 5443 /* Finish up */
5467 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), TRUE); 5444 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), TRUE);
5468 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(tree), TRUE); 5445 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(tree), TRUE);
5469 gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(tree), TRUE); 5446 gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(tree), TRUE);
10149 * dataname: A string pointer identifying which signal to be hooked. 10126 * dataname: A string pointer identifying which signal to be hooked.
10150 * data: User data to be passed to the handler function. 10127 * data: User data to be passed to the handler function.
10151 */ 10128 */
10152 void dw_window_set_data(HWND window, char *dataname, void *data) 10129 void dw_window_set_data(HWND window, char *dataname, void *data)
10153 { 10130 {
10131 HWND thiswindow = window;
10154 int _locked_by_me = FALSE; 10132 int _locked_by_me = FALSE;
10155 10133
10156 if(!window) 10134 if(!window)
10157 return; 10135 return;
10158 10136
10159 DW_MUTEX_LOCK; 10137 DW_MUTEX_LOCK;
10160 if(GTK_IS_SCROLLED_WINDOW(window)) 10138 if(GTK_IS_SCROLLED_WINDOW(window))
10161 { 10139 {
10162 HWND thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user"); 10140 thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user");
10163 10141 }
10164 if(thiswindow && G_IS_OBJECT(thiswindow)) 10142 if(thiswindow && G_IS_OBJECT(thiswindow))
10165 g_object_set_data(G_OBJECT(thiswindow), dataname, (gpointer)data); 10143 g_object_set_data(G_OBJECT(thiswindow), dataname, (gpointer)data);
10166 #if 0
10167 if(GTK_IS_COMBO_BOX(window))
10168 g_object_set_data(G_OBJECT(GTK_COMBO_BOX(window)->entry), dataname, (gpointer)data);
10169 #endif
10170 g_object_set_data(G_OBJECT(window), dataname, (gpointer)data);
10171 }
10172 DW_MUTEX_UNLOCK; 10144 DW_MUTEX_UNLOCK;
10173 } 10145 }
10174 10146
10175 /* 10147 /*
10176 * Gets a named user data item to a window handle. 10148 * Gets a named user data item to a window handle.
10179 * dataname: A string pointer identifying which signal to be hooked. 10151 * dataname: A string pointer identifying which signal to be hooked.
10180 * data: User data to be passed to the handler function. 10152 * data: User data to be passed to the handler function.
10181 */ 10153 */
10182 void *dw_window_get_data(HWND window, char *dataname) 10154 void *dw_window_get_data(HWND window, char *dataname)
10183 { 10155 {
10156 HWND thiswindow = window;
10184 int _locked_by_me = FALSE; 10157 int _locked_by_me = FALSE;
10185 void *ret = NULL; 10158 void *ret = NULL;
10186 10159
10187 if(!window) 10160 if(!window)
10188 return NULL; 10161 return NULL;
10189 10162
10190 DW_MUTEX_LOCK; 10163 DW_MUTEX_LOCK;
10191 if(G_IS_OBJECT(window)) 10164 if(GTK_IS_SCROLLED_WINDOW(window))
10192 ret = (void *)g_object_get_data(G_OBJECT(window), dataname); 10165 {
10166 thiswindow = (HWND)g_object_get_data(G_OBJECT(window), "_dw_user");
10167 }
10168 if(G_IS_OBJECT(thiswindow))
10169 ret = (void *)g_object_get_data(G_OBJECT(thiswindow), dataname);
10193 DW_MUTEX_UNLOCK; 10170 DW_MUTEX_UNLOCK;
10194 return ret; 10171 return ret;
10195 } 10172 }
10196 10173
10197 /* 10174 /*