void set_note_font_str(gchar *fontstr) { GdkFont *font; gint size; gint width; gtk_widget_ensure_style(sp->text_entry); set_font_str(sp->text_entry, fontstr); gtk_widget_ensure_style(sp->title_entry); set_font_str(sp->title_entry, fontstr); gtk_widget_ensure_style(sp->de_deadline); set_font_str(sp->de_deadline, fontstr); gtk_widget_ensure_style(sp->prio_entry); set_font_str(sp->prio_entry, fontstr); font = gtk_widget_get_style(sp->de_deadline)->font; size = gdk_string_height(font, "W") + 10; width = gdk_string_width(font, _("99/99/99999")); gtk_widget_set_usize(sp->de_deadline, -1, size); gtk_widget_set_usize(GNOME_DATE_EDIT(sp->de_deadline)->date_entry, width, size); width = gdk_string_width(font, _("99:999")); gtk_widget_set_usize(GNOME_DATE_EDIT(sp->de_deadline)->time_entry, width, size); gtk_widget_set_usize(sp->title_entry, -1, size); gtk_widget_set_usize(sp->prio_entry, -1, size); }
/* Kreslicí funkce spoleèná pro gtk_ev_draw() a gtk_ev_expose(), která kreslí * vnitøní okno widgetu */ static void gtk_ev_paint_ev_win(GtkEv *ev, GdkRectangle *area) { GtkWidget *widget; gint width, x, y; const char *title = "Event Window"; GdkFont *font; g_return_if_fail(ev); g_return_if_fail(area); widget = GTK_WIDGET(ev); font = gtk_style_get_font(widget->style); if(!GTK_WIDGET_DRAWABLE(ev)) return; gdk_window_clear_area(ev->ev_win, area->x, area->y, area->width, area->height); gdk_gc_set_clip_rectangle(widget->style->black_gc, area); width = gdk_string_width(font, title); x = (ev->ev_win_rect.width - width)/2; y = font->ascent + 2; gdk_draw_string(ev->ev_win, font, widget->style->black_gc, x, y, title); gdk_gc_set_clip_rectangle(widget->style->black_gc, NULL); }
static void update_plugin() { gint w_scroll, w_decal; static gint x_scroll; if (command_pipe) { command_done(); } if(GK.timer_ticks % 6 == 0) { run_command(); } #if defined(GKRELLM_HAVE_DECAL_SCROLL_TEXT) gkrellm_decal_scroll_text_set_text(panel, text1_btc, btc_text); gkrellm_decal_scroll_text_get_size(text1_btc, &w_scroll, NULL); gkrellm_decal_get_size(text1_btc, &w_decal, NULL); x_scroll -= 1; if (x_scroll <= -w_scroll) x_scroll = scroll_loop_mode ? 0 : w_decal; gkrellm_decal_text_set_offset(text1_btc, x_scroll, 0); #else w_decal = text1_btc->w; w_scroll = gdk_string_width(text1_btc->text_style.font, scroll_text); x_scroll -= 1; if (x_scroll <= -w_scroll) x_scroll = w_decal; text1_btc->x_off = x_scroll; gkrellm_draw_decal_text(panel, text1_btc, scroll_text, x_scroll); #endif gkrellm_draw_panel_layers(panel); }
static void update_plugin() { gint w_scroll, w_decal; static gint x_scroll; #if defined(GKRELLM_HAVE_DECAL_SCROLL_TEXT) /* Gkrellm version 2.2.0 adds a scrolling text mode to a text decal so | that inherently slow Pango text draws can be avoided at each scroll | step as long as the sroll text string is unchanged. */ gkrellm_decal_scroll_text_set_text(panel, text1_decal, scroll_text); gkrellm_decal_scroll_text_get_size(text1_decal, &w_scroll, NULL); gkrellm_decal_get_size(text1_decal, &w_decal, NULL); x_scroll -= 1; if (x_scroll <= -w_scroll) x_scroll = scroll_loop_mode ? 0 : w_decal; gkrellm_decal_text_set_offset(text1_decal, x_scroll, 0); #else w_decal = text1_decal->w; w_scroll = gdk_string_width(text1_decal->text_style.font, scroll_text); x_scroll -= 1; if (x_scroll <= -w_scroll) x_scroll = w_decal; text1_decal->x_off = x_scroll; gkrellm_draw_decal_text(panel, text1_decal, scroll_text, x_scroll); #endif gkrellm_draw_panel_layers(panel); }
int VisualTextWidth (KinoFont *font, char *t) { if (font && t) { return gdk_string_width ((GdkFont *) font, t); } else { return 0; } }
static void draw_top_speed (C2NetworkTraffic *nt) { gint x1, x2, y1, y2; gint text_width, text_height; gint top_speed_kb; gint i; gfloat pixels_per_byte; GdkFont *font; gchar *string; GtkWidget *widget = GTK_WIDGET (nt); /* Allocate the font */ font = gdk_font_load ("-monotype-arial-bold-r-normal-*-*-110-*-*-p-*-iso8859-1"); /* Allocate the value that are static */ x1 = 1; /* Calculate which is the top_speed in Kb */ top_speed_kb = nt->top_speed/1024; /* Calculate how many pixels should be drown per byte */ pixels_per_byte = get_pixels_per_byte (nt); for (i = top_speed_kb; i > 0; i--) { string = g_strdup_printf ("(%d Kb/s)", i); if (i == top_speed_kb) { /* Calculate the dimensions of the text */ text_height = gdk_string_height (font, string); text_width = gdk_string_width (font, string); } else { text_height = gdk_string_height (font, string);; text_width = 0; } /* Allocate the dynamic value that we calculated */ x2 = widget->allocation.width - text_width - 20; y1 = y2 = (text_height/2)+TOP_MARGIN + (pixels_per_byte * ((top_speed_kb-i)*1024)); gdk_draw_line (nt->pixmap, widget->style->black_gc, x1, y1, x2, y2); if (i == top_speed_kb) gdk_draw_string (nt->pixmap, font, widget->style->black_gc, x2+10, y1+(text_height/2), string); g_free (string); } }
void set_default_font() { GtkWidget *dummy_widget; GdkFont *font; gint size; gint width; dummy_widget = gtk_label_new(""); gtk_widget_ensure_style(dummy_widget); font = gtk_widget_get_style(dummy_widget)->font; gtk_widget_ensure_style(sp->text_entry); set_font(sp->text_entry, font); gtk_widget_ensure_style(sp->title_entry); set_font(sp->title_entry, font); gtk_widget_ensure_style(sp->de_deadline); set_font(sp->de_deadline, font); gtk_widget_ensure_style(sp->prio_entry); set_font(sp->prio_entry, font); size = gdk_string_height(font, "W") + 10; gtk_widget_set_usize(sp->title_entry, -1, size); width = gdk_string_width(font, _("99/99/99999")); gtk_widget_set_usize(sp->de_deadline, -1, size); gtk_widget_set_usize(GNOME_DATE_EDIT(sp->de_deadline)->date_entry, width, size); width = gdk_string_width(font, _("99:999")); gtk_widget_set_usize(GNOME_DATE_EDIT(sp->de_deadline)->time_entry, width, size); gtk_widget_set_usize(sp->prio_entry, -1, size); gtk_widget_ensure_style(sp->note_tree); set_font(sp->note_tree, font); gtk_widget_ensure_style(sp->todolist); set_font(sp->todolist, font); gtk_widget_destroy(dummy_widget); }
/* Determine the width of a NULL-terminated string. (The distance from the origin of the string to the point where the next string in a sequence of strings should be drawn) */ int clip_GDK_STRINGWIDTH(ClipMachine * cm) { C_object *cfont = _fetch_co_opt(cm); gchar * string = _clip_parc(cm,2); CHECKCOBJOPT(cfont,GDK_IS_FONT(cfont)); CHECKARG(2,CHARACTER_t); LOCALE_TO_UTF(string); _clip_retni(cm,gdk_string_width(GDK_FONT(cfont->object), string)); FREE_TEXT(string); return 0; err: return 1; }
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_stringWidth (JNIEnv *env, jobject obj, jstring str) { GdkFont *font; const char *cstr; jint width; font = (GdkFont *) NSA_GET_PTR (env, obj); cstr = (*env)->GetStringUTFChars (env, str, NULL); gdk_threads_enter (); width = gdk_string_width (font, cstr); gdk_threads_leave (); (*env)->ReleaseStringUTFChars (env, str, cstr); return width; }
static GtkWidget* hi_dialog_time_hbox(history_item_dlg *hidlg) { GtkWidget *hbox; GtkWidget *label; int twocharwidth; hbox = gtk_hbox_new(FALSE, 0); { /* hour */ hidlg->ehour = gtk_entry_new_with_max_length(2); twocharwidth = gdk_string_width(hidlg->ehour->style->font, "00"); gtk_box_pack_start(GTK_BOX(hbox), hidlg->ehour, FALSE, FALSE, 0); gtk_widget_set_usize(GTK_WIDGET(hidlg->ehour), twocharwidth + 5, -1); /* colon */ label = gtk_label_new(":"); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); /* min */ hidlg->emin = gtk_entry_new_with_max_length(2); gtk_box_pack_start(GTK_BOX(hbox), hidlg->emin, FALSE, FALSE, 0); gtk_widget_set_usize(GTK_WIDGET(hidlg->emin), twocharwidth + 5, -1); } return hbox; }
static void extspinbutton_size_request (GtkWidget *widget, GtkRequisition *requisition) { g_return_if_fail (widget != NULL); g_return_if_fail (requisition != NULL); g_return_if_fail (GTK_IS_SPIN_BUTTON (widget)); GTK_WIDGET_CLASS (parent_class)->size_request (widget, requisition); if(EXTSPINBUTTON(widget)->size_hack) { requisition->width = MAX (MIN_SPIN_BUTTON_WIDTH, extspinbutton_find_display_digits(GTK_SPIN_BUTTON(widget)->adjustment) * gdk_string_width(gdk_font_from_description(widget->style->font_desc), "X")) + ARROW_SIZE + 2 * widget->style->xthickness; } else { // This is the normal size_request() from gtk+-1.2.8 requisition->width = MIN_SPIN_BUTTON_WIDTH + ARROW_SIZE + 2 * widget->style->xthickness; } }
void BuildRegisterWindow(Register_Window *rw) { GtkWidget *window; GtkWidget *register_sheet; GtkWidget *main_vbox; GtkWidget *scrolled_window; #define MAXROWS (MAX_REGISTERS/REGISTERS_PER_ROW) #define MAXCOLS (REGISTERS_PER_ROW+1) GtkSheet *sheet; gchar name[10]; gint i; gint column_width,char_width; int x,y,width,height; if(rw==NULL) { printf("Warning build_register_viewer(%x)\n",(unsigned int)rw); return; } window=gtk_window_new(GTK_WINDOW_TOPLEVEL); ((GUI_Object*)rw)->window=window; gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (gtk_widget_destroyed), &window); //GTK_SIGNAL_FUNC (quit), NULL); main_vbox=gtk_vbox_new(FALSE,1); gtk_container_set_border_width(GTK_CONTAINER(main_vbox),0); gtk_container_add(GTK_CONTAINER(window), main_vbox); gtk_widget_show(main_vbox); if(rw->type==REGISTER_RAM) { register_sheet=gtk_sheet_new(1,MAXCOLS,"gpsim Register Viewer [RAM]"); gtk_window_set_title(GTK_WINDOW(window), "register viewer [RAM]"); // Add a status bar StatusBar_create(main_vbox,gp->status_bar); } else { register_sheet=gtk_sheet_new(1,MAXCOLS,"gpsim Register Viewer [EEPROM]"); gtk_window_set_title(GTK_WINDOW(window), "register viewer [EEPROM]"); } GTK_WIDGET_UNSET_FLAGS(register_sheet,GTK_CAN_DEFAULT); rw->register_sheet = GTK_SHEET(register_sheet); /* create popupmenu */ rw->popup_menu=build_menu(sheet,rw); build_entry_bar(main_vbox, rw); width=((GUI_Object*)rw)->width; height=((GUI_Object*)rw)->height; x=((GUI_Object*)rw)->x; y=((GUI_Object*)rw)->y; gtk_window_set_default_size(GTK_WINDOW(rw->gui_obj.window), width,height); gtk_widget_set_uposition(GTK_WIDGET(rw->gui_obj.window),x,y); gtk_signal_connect(GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC(delete_event), rw); scrolled_window=gtk_scrolled_window_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(scrolled_window), register_sheet); GTK_SHEET_SET_FLAGS(register_sheet, GTK_SHEET_CLIP_TEXT); gtk_widget_show(register_sheet); gtk_widget_show(scrolled_window); gtk_box_pack_start(GTK_BOX(main_vbox), scrolled_window, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(gtk_sheet_get_entry(GTK_SHEET(register_sheet))), "changed", (GtkSignalFunc)show_entry, rw); gtk_signal_connect(GTK_OBJECT(register_sheet), "activate", (GtkSignalFunc)activate_sheet_cell, (gpointer) rw); gtk_signal_connect(GTK_OBJECT(rw->entry), "changed", (GtkSignalFunc)show_sheet_entry, rw); gtk_signal_connect(GTK_OBJECT(rw->entry), "activate", (GtkSignalFunc)activate_sheet_entry, rw); // gtk_widget_realize(window); char_width = gdk_string_width (normal_style->font,"9"); column_width = 3 * char_width + 6; sheet=rw->register_sheet; for(i=0; i<sheet->maxcol; i++){ //sprintf(name,"0x%02x",i); sprintf(name,"%02x",i); gtk_sheet_column_button_add_label(sheet, i, name); gtk_sheet_set_column_title(sheet, i, name); gtk_sheet_set_column_width (sheet, i, column_width); } sprintf(name,"ASCII"); gtk_sheet_column_button_add_label(sheet, i, name); gtk_sheet_set_column_title(sheet, i, name); gtk_sheet_set_column_width (sheet, i, REGISTERS_PER_ROW*char_width + 6); gtk_sheet_set_row_titles_width(sheet, column_width); gtk_signal_connect(GTK_OBJECT(sheet), "key_press_event", (GtkSignalFunc) clipboard_handler, NULL); gtk_signal_connect(GTK_OBJECT(sheet), "resize_range", (GtkSignalFunc) resize_handler, rw); gtk_signal_connect(GTK_OBJECT(sheet), "move_range", (GtkSignalFunc) move_handler, rw); gtk_signal_connect(GTK_OBJECT(sheet), "button_press_event", (GtkSignalFunc) do_popup, rw); gtk_signal_connect(GTK_OBJECT(sheet), "set_cell", (GtkSignalFunc) parse_numbers, rw); // rw->gui_obj.window = window; gtk_signal_connect_after(GTK_OBJECT(rw->gui_obj.window), "configure_event", GTK_SIGNAL_FUNC(gui_object_configure_event),rw); gtk_widget_show (window); gtk_widget_grab_default(rw->location); rw->gui_obj.enabled=1; for(i=0;i<MAX_REGISTERS;i++) rw->registers[i]=NULL; if(rw->processor) { RegWindow_new_processor(rw, ((GUI_Object*)rw)->gp); } }
GtkWidget * yank_app_new(EYank *yank) { yank_preferences *prefs; static GtkTargetEntry drop_types[] = { { "text/uri-list", 0, 1 }, }; static gint n_drop_types = sizeof (drop_types)/sizeof (drop_types [0]); gchar *treetitle[] = { _("NoteTree"), NULL }; gchar *todotitles[] = { _("Deadline"), _("Priority"), _("Complete"), _("Title"), NULL }; GtkWidget *app; GtkWidget *scrolledwindow1; GtkWidget *scrolledwindow2; GtkWidget *scrolledwindow3; GtkWidget *hbox; GtkWidget *hbox3; GtkWidget *vbox; GtkWidget *label; GdkFont *font; GtkObject *prio_adjust; /* gint got_crash; */ GtkWidget *b_toggle_ext_flags; GtkWidget *hbox_ext_flags; GtkWidget *hpaned; hpaned = app = yank->priv->hpaned; yank_main_app(app); sp->edit_tree = NULL; sp->title_entry =NULL; sp->todo_check =NULL; sp->prio_entry =NULL; sp->de_deadline =NULL; sp->ad_complete =NULL; sp->tlabel_created =NULL; sp->tlabel_changed =NULL; sp->label_changes =NULL; sp->tlabel_expire =NULL; sp->note_id_entry =NULL; sp->text_entry =NULL; sp->note_tree =NULL; sp->b_ok =NULL; sp->b_apply =NULL; sp->b_cancel =NULL; sp->todolist =NULL; sp->notebook =NULL; sp->status =NULL; sp->prio_date_box =NULL; sp->edit_tree=NULL; yank_root_win(GTK_WINDOW(app)); /* * main tree */ scrolledwindow1 = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); /* gtk_widget_show will be called later */ /* gtk_container_add(GTK_CONTAINER(hpaned), scrolledwindow1); */ e_paned_add1(E_PANED(hpaned), scrolledwindow1); sp->note_tree = gtk_ctree_new_with_titles(1, 0, treetitle); gtk_widget_show(sp->note_tree); gtk_container_add(GTK_CONTAINER(scrolledwindow1), sp->note_tree); gtk_clist_set_column_width(GTK_CLIST(sp->note_tree), 0, 80); gtk_clist_set_column_auto_resize(GTK_CLIST(sp->note_tree), 0, TRUE); gtk_clist_set_row_height(GTK_CLIST(sp->note_tree), 19); gtk_clist_set_selection_mode(GTK_CLIST(sp->note_tree), GTK_SELECTION_EXTENDED); gtk_clist_set_reorderable(GTK_CLIST(sp->note_tree), TRUE); gtk_clist_set_use_drag_icons(GTK_CLIST(sp->note_tree), TRUE); gtk_clist_column_titles_show(GTK_CLIST(sp->note_tree)); gtk_signal_connect(GTK_OBJECT(sp->note_tree), "tree_select_row", GTK_SIGNAL_FUNC (note_tree_row_selected), NULL); gtk_signal_connect(GTK_OBJECT(sp->note_tree), "tree_unselect_row", GTK_SIGNAL_FUNC (note_tree_row_unselected), NULL); gtk_signal_connect(GTK_OBJECT(sp->note_tree), "click_column", GTK_SIGNAL_FUNC (cb_note_tree_col_selected), NULL); gtk_signal_connect(GTK_OBJECT(sp->note_tree), "drag_data_received", GTK_SIGNAL_FUNC(cb_note_tree_reordered), NULL); /* * FIXME: * dnd on the note-tree disables reordering of notes by dnd */ /* gtk_signal_connect(GTK_OBJECT(sp->note_tree), "drag_data_received", */ /* GTK_SIGNAL_FUNC(cb_note_tree_drop), NULL); */ /* gtk_drag_dest_set(sp->note_tree, GTK_DEST_DEFAULT_MOTION | */ /* GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, */ /* drop_types, n_drop_types, GDK_ACTION_COPY); */ sp->notebook = gtk_notebook_new(); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sp->notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(sp->notebook), FALSE); gtk_widget_show(sp->notebook); /* gtk_container_add(GTK_CONTAINER(hpaned), sp->notebook); */ e_paned_add2(E_PANED(hpaned), sp->notebook); /* * todo-list */ scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_show(scrolledwindow2); gtk_container_add(GTK_CONTAINER(sp->notebook), scrolledwindow2); sp->todolist = gtk_clist_new_with_titles(4, todotitles); gtk_signal_connect(GTK_OBJECT(sp->todolist), "select_row", GTK_SIGNAL_FUNC (cb_todo_row_selected), NULL); gtk_signal_connect(GTK_OBJECT(sp->todolist), "click_column", GTK_SIGNAL_FUNC (cb_todo_col_selected), NULL); gtk_signal_connect(GTK_OBJECT(sp->todolist), "drag_data_received", GTK_SIGNAL_FUNC(cb_todo_list_drop), NULL); gtk_drag_dest_set(sp->todolist, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, drop_types, n_drop_types, GDK_ACTION_COPY); gtk_widget_show(sp->todolist); gtk_container_add(GTK_CONTAINER(scrolledwindow2), sp->todolist); gtk_clist_column_titles_show(GTK_CLIST(sp->todolist)); gtk_clist_set_column_auto_resize(GTK_CLIST(sp->todolist), 0 , TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(sp->todolist), 3 , TRUE); gtk_clist_set_column_justification(GTK_CLIST(sp->todolist), 1, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification(GTK_CLIST(sp->todolist), 2, GTK_JUSTIFY_RIGHT); /* * text/ data */ vbox = gtk_vbox_new(FALSE, 3); gtk_widget_show(vbox); gtk_container_add(GTK_CONTAINER (sp->notebook), vbox); hbox = gtk_hbox_new(FALSE, 0); gtk_widget_show(hbox); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 3); sp->prio_date_box = gtk_vbox_new(FALSE, 3); gtk_widget_show(sp->prio_date_box); gtk_box_pack_start(GTK_BOX(vbox), sp->prio_date_box, FALSE, FALSE, 0); hbox_ext_flags = gui_ext_flags(); gtk_box_pack_start(GTK_BOX(vbox), hbox_ext_flags, FALSE, FALSE, 3); label = gtk_label_new(_("Title:")); font = gtk_widget_get_style(label)->font; gtk_widget_set_usize(label, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); sp->title_entry = gtk_entry_new(); gtk_widget_set_usize(sp->title_entry, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(sp->title_entry); gtk_box_pack_start(GTK_BOX(hbox), sp->title_entry, TRUE, TRUE, 5); sp->todo_check = gtk_check_button_new_with_label(_("Done")); gtk_widget_set_usize(sp->todo_check, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(sp->todo_check); gtk_box_pack_start(GTK_BOX(hbox), sp->todo_check, FALSE, FALSE, 5); /* * button for extra flags& data */ b_toggle_ext_flags = gtk_button_new(); { GtkWidget *p_up; GtkWidget *p_down; GtkWidget *box; box = gtk_hbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(b_toggle_ext_flags), box); gtk_widget_show(box); p_up = gnome_stock_pixmap_widget_at_size( GTK_WIDGET(yank_root_win(NULL)), GNOME_STOCK_BUTTON_UP, 12, 14); p_down = gnome_stock_pixmap_widget_at_size( GTK_WIDGET(yank_root_win(NULL)), GNOME_STOCK_BUTTON_DOWN, 12, 14); gtk_widget_hide(p_up); gtk_widget_show(p_down); gtk_container_add(GTK_CONTAINER(box), p_up); gtk_container_add(GTK_CONTAINER(box), p_down); gtk_object_set_data(GTK_OBJECT(b_toggle_ext_flags), "up", p_up); gtk_object_set_data(GTK_OBJECT(b_toggle_ext_flags), "down", p_down); } gtk_widget_show(b_toggle_ext_flags); gtk_box_pack_start(GTK_BOX(hbox), b_toggle_ext_flags, FALSE, FALSE, 5); gtk_signal_connect(GTK_OBJECT(b_toggle_ext_flags), "clicked", GTK_SIGNAL_FUNC(cb_toggle_ext_flags), hbox_ext_flags); /* * deadline/ prio/ complete */ { GtkWidget *prio_hbox1; GtkWidget *prio_hbox2; GtkWidget *sc_complete; prio_hbox1 = gtk_hbox_new(FALSE, 0); gtk_widget_show(prio_hbox1); gtk_box_pack_start(GTK_BOX(sp->prio_date_box), prio_hbox1, FALSE, FALSE, 0); prio_hbox2 = gtk_hbox_new(FALSE, 0); gtk_widget_show(prio_hbox2); gtk_box_pack_start(GTK_BOX(sp->prio_date_box), prio_hbox2, FALSE, FALSE, 0); label = gtk_label_new(_("Deadline:")); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(prio_hbox1), label, FALSE, FALSE, 5); sp->de_deadline = gnome_date_edit_new(0, 1, 1); gnome_date_edit_set_popup_range(GNOME_DATE_EDIT(sp->de_deadline), 0, 23); gtk_widget_set_sensitive(GNOME_DATE_EDIT(sp->de_deadline)->date_entry, FALSE); gtk_widget_set_sensitive(GNOME_DATE_EDIT(sp->de_deadline)->time_entry, FALSE); gtk_widget_show(sp->de_deadline); gtk_box_pack_start(GTK_BOX(prio_hbox1), sp->de_deadline, FALSE, FALSE, 0); label = gtk_label_new(_("Priority:")); gtk_widget_set_usize(label, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(prio_hbox1), label, FALSE, FALSE, 5); prio_adjust = gtk_adjustment_new(0, 0, 9999, 1, 10, 10); sp->prio_entry = gtk_spin_button_new(GTK_ADJUSTMENT(prio_adjust), 1, 0); /* NOTE: this is note 100% ok */ gtk_widget_set_usize(GTK_WIDGET(sp->prio_entry), gdk_string_width(font, "999999") + 10, gdk_string_height(font, "W") + 10); gtk_widget_show(sp->prio_entry); gtk_box_pack_start(GTK_BOX(prio_hbox1), sp->prio_entry, FALSE, FALSE, 0); label = gtk_label_new(_("Complete:")); gtk_widget_set_usize(label, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(prio_hbox2), label, FALSE, FALSE, 5); sp->ad_complete = gtk_adjustment_new(0, 0, 101, 1, 1, 1); sc_complete = gtk_hscale_new(GTK_ADJUSTMENT(sp->ad_complete)); gtk_scale_set_digits(GTK_SCALE(sc_complete), 0); gtk_scale_set_value_pos(GTK_SCALE(sc_complete), GTK_POS_LEFT); gtk_widget_show(sc_complete); gtk_box_pack_start(GTK_BOX(prio_hbox2), sc_complete, TRUE, TRUE, 5); label = gtk_label_new(_("%")); gtk_widget_set_usize(label, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(prio_hbox2), label, FALSE, FALSE, 5); } /* * additional note data */ sp->note_id_entry = gtk_entry_new(); /* gtk_widget_show(sp->note_id_entry); */ gtk_widget_hide(sp->note_id_entry); gtk_box_pack_start(GTK_BOX(hbox), sp->note_id_entry, FALSE, FALSE, 5); /* * note text */ scrolledwindow3 = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_show(scrolledwindow3); gtk_box_pack_start(GTK_BOX(vbox), scrolledwindow3, TRUE, TRUE, 0); sp->text_entry = gtk_text_new(NULL, NULL); gtk_text_set_editable(GTK_TEXT(sp->text_entry), TRUE); gtk_widget_show(sp->text_entry); gtk_container_add(GTK_CONTAINER(scrolledwindow3), sp->text_entry); /* text dnd */ gtk_signal_connect(GTK_OBJECT(sp->text_entry), "drag_data_received", GTK_SIGNAL_FUNC(cb_text_entry_drop), NULL); gtk_drag_dest_set(sp->text_entry, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, drop_types, n_drop_types, GDK_ACTION_COPY); hbox3 = gtk_hbox_new(FALSE, 0); gtk_widget_show(hbox3); gtk_box_pack_start(GTK_BOX(vbox), hbox3, FALSE, FALSE, 3); sp->b_ok = gnome_stock_button(GNOME_STOCK_BUTTON_OK); gtk_widget_show(sp->b_ok); gtk_box_pack_start(GTK_BOX(hbox3), sp->b_ok, TRUE, FALSE, 5); gtk_signal_connect(GTK_OBJECT(sp->b_ok), "clicked", GTK_SIGNAL_FUNC(cb_b_ok), NULL); sp->b_apply = gnome_stock_button(GNOME_STOCK_BUTTON_APPLY); gtk_widget_show(sp->b_apply); gtk_box_pack_start(GTK_BOX(hbox3), sp->b_apply, TRUE, FALSE, 5); gtk_signal_connect(GTK_OBJECT(sp->b_apply), "clicked", GTK_SIGNAL_FUNC(cb_b_apply), NULL); sp->b_cancel = gnome_stock_button(GNOME_STOCK_BUTTON_CANCEL); gtk_widget_show(sp->b_cancel); gtk_box_pack_start(GTK_BOX(hbox3), sp->b_cancel, TRUE, FALSE, 5); gtk_signal_connect(GTK_OBJECT(sp->b_cancel), "clicked", GTK_SIGNAL_FUNC(cb_b_cancel), NULL); /* * a bit suboptimal */ gtk_signal_connect(GTK_OBJECT(sp->title_entry), "changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->de_deadline), "date-changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->de_deadline), "time-changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->tlabel_expire), "time_changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->prio_entry), "changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->ad_complete), "value_changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->ad_complete), "value_changed", GTK_SIGNAL_FUNC(cb_complete_updates_done), sp->todo_check); gtk_signal_connect(GTK_OBJECT(sp->todo_check), "toggled", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->text_entry), "changed", GTK_SIGNAL_FUNC(note_changed), NULL); /* * keyboard-control */ gtk_signal_connect(GTK_OBJECT(sp->title_entry), "activate", GTK_SIGNAL_FUNC(cb_finished_note), NULL); gtk_signal_connect(GTK_OBJECT(sp->text_entry), "activate", GTK_SIGNAL_FUNC(cb_finished_note), NULL); /* * create pixmaps */ pix_text_xpm = gnome_pixmap_new_from_xpm_d(text_xpm); gtk_widget_show(pix_text_xpm); pix_box_xpm = gnome_pixmap_new_from_xpm_d(box_xpm); gtk_widget_show(pix_box_xpm); pix_box2_xpm = gnome_pixmap_new_from_xpm_d(box2_xpm); gtk_widget_show(pix_box2_xpm); pix_circle_xpm = gnome_pixmap_new_from_xpm_d(circle_xpm); gtk_widget_show(pix_circle_xpm); pix_circle2_xpm = gnome_pixmap_new_from_xpm_d(circle2_xpm); gtk_widget_show(pix_circle2_xpm); /* * menus */ /* gnome_app_set_contents(GNOME_APP(app), hpaned); */ /* sp->status = gnome_appbar_new(FALSE, TRUE, GNOME_PREFERENCES_USER); */ /* gnome_app_set_statusbar(GNOME_APP(app), sp->status); */ /* yank_install_menus_and_toolbar(app); */ yank_tree_item_context_menu(sp->note_tree); yank_todo_item_context_menu(sp->todolist); yank_text_item_context_menu(sp->title_entry); yank_text_item_context_menu(sp->text_entry); /* gtk_signal_connect(GTK_OBJECT(app), "delete_event", */ /* GTK_SIGNAL_FUNC(cb_delete_event), NULL); */ /* * initialize preferences * also preloads plugins */ load_preferences(); prefs = get_preferences(); gtk_text_set_word_wrap(GTK_TEXT(sp->text_entry), prefs->wordwrap); gtk_text_set_line_wrap(GTK_TEXT(sp->text_entry), prefs->linewrap); /* if (prefs->yank_width * prefs->yank_height) */ /* { */ /* gtk_window_set_default_size(GTK_WINDOW(app), prefs->yank_width, */ /* prefs->yank_height); */ /* } */ /* else */ /* { */ /* gtk_window_set_default_size(GTK_WINDOW(app), 600, 400); */ /* } */ if (prefs->use_custom_font) { if (prefs->note_font) { set_note_font_str(prefs->note_font); } if (prefs->note_tree_font) { set_note_tree_font_str(prefs->note_tree_font); } if (prefs->todolist_font) { set_todolist_font_str(prefs->todolist_font); } } else { set_default_font(); } /* * parse geometry if given */ /* if (geometry != NULL) */ /* { */ /* gint x, y, w, h; */ /* if (gnome_parse_geometry(geometry, &x, &y, &w, &h )) */ /* { */ /* if (x != -1) */ /* { */ /* gtk_widget_set_uposition(app, x, y); */ /* } */ /* */ /* if (w != -1) */ /* { */ /* gtk_window_set_default_size(GTK_WINDOW(app), w, h); */ /* } */ /* } */ /* else */ /* { */ /* g_error(_("Could not parse geometry string `%s'"), geometry); */ /* } */ /* } */ /* */ /* if (prefs->note_tree_width) */ /* { */ /* gtk_widget_set_usize(scrolledwindow1, prefs->note_tree_width, -1); */ /* } */ /* else */ /* { */ /* gtk_widget_set_usize(scrolledwindow1, 200, -1); */ /* } */ /* gtk_widget_show(scrolledwindow1); */ /* * try to read files from killed sessions */ /* got_crash = get_crash_file(); */ /* * load file from the command-line */ /* if (file != NULL && ! got_crash) */ /* { */ /* load_notes_from_cli((gchar *)file, GTK_CTREE(sp->note_tree), NULL); */ /* } */ /* * read default file */ /* if (file == NULL && ! got_crash) */ /* { */ /* get_def_file(); */ /* } */ /* * register some signal-handlers */ /* if (signal(SIGTERM, handle_sigterm) == SIG_ERR) */ /* { */ /* g_warning("Can't handle SIGTERM"); */ /* } */ /* if (signal(SIGCHLD, handle_sigchild) == SIG_ERR) */ /* { */ /* g_warning("Can't handle SIGCHILD"); */ /* } */ /* if (signal(SIGPIPE, handle_sigpipe) == SIG_ERR) */ /* { */ /* g_warning("Can't handle SIGPIPE"); */ /* } */ /* * init autosave */ /* if (prefs->auto_save_minutes) */ /* { */ /* autosave_notes(NULL); */ /* } */ return (hpaned); }
static void gnc_query_list_init_clist (GNCQueryList *list) { GtkCList *clist = GTK_CLIST (list); GtkStyle *style; GList *node; gchar **titles; gint i; /* compute the number of columns and fill in the rest of the list */ list->num_columns = g_list_length(list->column_params); list->title_arrows = g_new0(GtkWidget*, list->num_columns); list->title_widths = g_new0(gint, list->num_columns); /* build an array of titles */ titles = g_new0(gchar*, list->num_columns); for (i = 0, node = list->column_params; node; node = node->next, i++) { GNCSearchParam *param = node->data; titles[i] = (gchar *)param->title; } gtk_clist_column_titles_show (clist); gtk_clist_set_shadow_type (clist, GTK_SHADOW_IN); /* build all the column titles */ for (i = 0; i < list->num_columns; i++) gnc_query_list_column_title(list, i, titles[i]); /* set the column justification */ for (i = 0, node = list->column_params; node; node = node->next, i++) { GNCSearchParam *param = node->data; gtk_clist_set_column_justification (clist, i, param->justify); if (param->passive) gtk_clist_column_title_passive (clist, i); if (param->non_resizeable) gtk_clist_set_column_resizeable (clist, i, FALSE); } g_signal_connect (clist, "click_column", G_CALLBACK(gnc_query_list_click_column_cb), NULL); g_signal_connect (clist, "size_allocate", G_CALLBACK(gnc_query_list_size_allocate_cb), NULL); style = gtk_widget_get_style (GTK_WIDGET(list)); #if 0 { GdkFont *font = NULL; gint width; font = style->font; if (font != NULL) { for (i = 0, node = list->column_params; node; node = node->next, i++) { GNCSearchParam *param = node->data; width = gdk_string_width (font, titles[i]) + 5; if (!param->passive) width += ARROW_SIZE; gtk_clist_set_column_min_width (clist, i, width); list->title_widths[i] = width; } } } #endif g_free(titles); }
/** * TBD */ void create_hist_list( void ) { static char *title[1] = { "History" }; GtkStyle *style, *new_style; gint sz, max_sz; int n; char tmp[80]; GtkWidget *scrolled_win; GdkFont *private_font; hist_list = gtk_clist_new_with_titles( 1, title ); /* * When a selection is made, we want to know about it. The callback * * used is selection_made, and its code can be found further down */ select_hist_handler_id = gtk_signal_connect( GTK_OBJECT( hist_list ), "select_row", GTK_SIGNAL_FUNC( hist_list_selected ), NULL ); /* * It isn't necessary to shadow the border, but it looks nice :) */ gtk_clist_set_shadow_type( GTK_CLIST( hist_list ), GTK_SHADOW_OUT ); /* * Make sure titles are being shown */ gtk_clist_column_titles_show( GTK_CLIST( hist_list ) ); /* * What however is important, is that we set the column widths as * they * will never be right otherwise. Note that the columns are * numbered * from 0 and up. */ style = gtk_widget_get_style( hist_list ); new_style = gtk_style_copy( style ); if ( ( private_font = gdk_font_load( "*courier-*-r*140*" ) ) == NULL ) if ( ( private_font = gdk_font_load( "*courier-*-r*120*" ) ) == NULL ) private_font = gtk_style_get_font( style ); gtk_style_set_font( style, private_font ); gtk_widget_set_style( hist_list, new_style ); for ( max_sz = 0, n = 0; n < 10; n++ ) { sprintf( tmp, "%d: %s: %c%d", RANDOM( 1, 60 ), ( rand( ) % 2 ) ? "Black" : "White", RANDOM( 0, 7 ) + 'A', RANDOM( 1, 8 ) ); sz = gdk_string_width( private_font, tmp ); if ( sz > max_sz ) max_sz = sz; } gtk_clist_set_column_width( GTK_CLIST( hist_list ), 0, max_sz ); /* * --- Set the column justifications --- */ gtk_clist_set_column_justification( GTK_CLIST( hist_list ), 0, GTK_JUSTIFY_LEFT ); gtk_clist_column_titles_passive( GTK_CLIST( hist_list ) ); /* * --- Selection mode --- */ gtk_clist_set_selection_mode( GTK_CLIST( hist_list ), GTK_SELECTION_BROWSE ); /* * Add the GtkCList widget to the vertical box and show it. */ gtk_widget_show( hist_list ); scrolled_win = gtk_scrolled_window_new( NULL, NULL ); gtk_container_add( GTK_CONTAINER( scrolled_win ), hist_list ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolled_win ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS ); gtk_box_pack_start( GTK_BOX( main_hbox ), scrolled_win, FALSE, FALSE, 0 ); gtk_widget_show( scrolled_win ); } // create_hist_list