static void date_optionmenu_changed_cb (GtkOptionMenu *option_menu, DialogData *data) { char *first_image = data->file_list->data; int idx = gtk_option_menu_get_history (option_menu); gtk_widget_set_sensitive (data->date_dateedit, idx == FOLLOWING_DATE); switch (idx) { case NO_DATE: case FOLLOWING_DATE: case NO_CHANGE: break; case CURRENT_DATE: gnome_date_edit_set_time (GNOME_DATE_EDIT (data->date_dateedit), time (NULL)); break; case IMAGE_CREATION_DATE: gnome_date_edit_set_time (GNOME_DATE_EDIT (data->date_dateedit), get_file_ctime (first_image)); break; case LAST_MODIFIED_DATE: gnome_date_edit_set_time (GNOME_DATE_EDIT (data->date_dateedit), get_file_mtime (first_image)); break; case EXIF_DATE: gnome_date_edit_set_time (GNOME_DATE_EDIT (data->date_dateedit), get_metadata_time (NULL, first_image)); break; } }
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); }
static time_t get_requested_time (DialogData *data, const char *filename) { int idx = gtk_option_menu_get_history (GTK_OPTION_MENU (data->date_optionmenu)); time_t t = (time_t)0; switch (idx) { case NO_DATE: break; case FOLLOWING_DATE: t = gnome_date_edit_get_time (GNOME_DATE_EDIT (data->date_dateedit)); break; case CURRENT_DATE: t = time (NULL); break; case EXIF_DATE: t = get_metadata_time (NULL, filename); break; case LAST_MODIFIED_DATE: t = get_file_mtime (filename); break; case IMAGE_CREATION_DATE: t = get_file_ctime (filename); break; } return t; }
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); }
void fill_page_from_note_data(note_data *note) { gint len; gchar *buff; if (note->title != NULL) { gtk_entry_set_text(GTK_ENTRY(sp->title_entry), note->title); } if (note->text != NULL) { len = strlen(note->text); gtk_text_insert(GTK_TEXT(sp->text_entry), NULL, NULL, NULL, note->text, len); gtk_editable_set_position(GTK_EDITABLE(sp->text_entry), 0); } time_label_set_time(TIME_LABEL(sp->tlabel_expire), note->expire); time_label_set_time(TIME_LABEL(sp->tlabel_created), note->created); time_label_set_time(TIME_LABEL(sp->tlabel_changed), note->changed); buff = g_strdup_printf("%ld", note->changes); gtk_label_set_text(GTK_LABEL(sp->label_changes), buff); g_free(buff); if (note->id != NULL) { gtk_entry_set_text(GTK_ENTRY(sp->note_id_entry), note->id); } if (note->notetype == CheckNote || note->notetype == TodoNote) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sp->todo_check), note->todo); } if (note->notetype == TodoNote) { gnome_date_edit_set_time(GNOME_DATE_EDIT(sp->de_deadline), note->deadline); gtk_spin_button_set_value(GTK_SPIN_BUTTON(sp->prio_entry), note->prio); gtk_signal_handler_block_by_func( GTK_OBJECT(sp->ad_complete), GTK_SIGNAL_FUNC(cb_complete_updates_done), sp->todo_check); gtk_adjustment_set_value(GTK_ADJUSTMENT(sp->ad_complete), note->complete); gtk_signal_handler_unblock_by_func( GTK_OBJECT(sp->ad_complete), GTK_SIGNAL_FUNC(cb_complete_updates_done), sp->todo_check); } }
void clear_text_page(gboolean add, gint *uncommitted) { guint len; gint ucm; ucm = *uncommitted; gtk_entry_set_text(GTK_ENTRY(sp->title_entry), ""); if (add == TRUE) { time_label_set_time(TIME_LABEL(sp->tlabel_created), time(NULL)); } else { time_label_set_time(TIME_LABEL(sp->tlabel_created), -1); } time_label_set_time(TIME_LABEL(sp->tlabel_changed), -1); if (add == TRUE) { gtk_label_set_text(GTK_LABEL(sp->label_changes), _("0")); } else { gtk_label_set_text(GTK_LABEL(sp->label_changes), ""); } time_label_set_time(TIME_LABEL(sp->tlabel_expire), -1); gtk_entry_set_text(GTK_ENTRY(sp->note_id_entry), ""); gnome_date_edit_set_time(GNOME_DATE_EDIT(sp->de_deadline), 0); gtk_entry_set_text(GTK_ENTRY(sp->prio_entry), ""); gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(sp->todo_check), FALSE); gtk_adjustment_set_value(GTK_ADJUSTMENT(sp->ad_complete), 0); len = gtk_text_get_length(GTK_TEXT(sp->text_entry)); if (len) { gtk_text_freeze(GTK_TEXT(sp->text_entry)); gtk_text_set_point(GTK_TEXT(sp->text_entry), 0); gtk_text_forward_delete(GTK_TEXT(sp->text_entry), len); gtk_text_thaw(GTK_TEXT(sp->text_entry)); } *uncommitted = ucm; }
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); }
note_data * fill_note_data_from_page(_notetype notetype) { note_data *note; gchar *l_ptr; note = (note_data *) malloc(sizeof (note_data)); if (note == NULL) { g_warning(_("Error while allocating memory for note (0)")); return (NULL); } note->notetype = notetype; note->title = g_strdup(gtk_entry_get_text(GTK_ENTRY(sp->title_entry))); if (note->title == NULL) { g_warning(_("Error while allocating memory for note (1)")); return (NULL); } note->text = gtk_editable_get_chars(GTK_EDITABLE(sp->text_entry), 0, gtk_text_get_length(GTK_TEXT( sp->text_entry))); if (note->text == NULL) { g_warning(_("Error while allocating memory for note (2)")); return (NULL); } if (notetype == CheckNote || notetype == TodoNote) { note->todo = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(sp->todo_check)); } else { note->todo = 0; } note->expire = time_label_get_time(TIME_LABEL(sp->tlabel_expire)); note->created = time_label_get_time(TIME_LABEL(sp->tlabel_created)); note->changed = time(NULL); time_label_set_time(TIME_LABEL(sp->tlabel_changed), note->changed); gtk_label_get(GTK_LABEL(sp->label_changes), &l_ptr); note->changes = atoi(l_ptr); note->changes++; l_ptr = g_strdup_printf("%ld", note->changes); gtk_label_set_text(GTK_LABEL(sp->label_changes), l_ptr); g_free(l_ptr); note->id = g_strdup(gtk_entry_get_text(GTK_ENTRY(sp->note_id_entry))); if (note->id == NULL) { g_warning(_("Error while allocating memory for note (3)")); return (NULL); } if (notetype == TodoNote) { note->deadline = gnome_date_edit_get_date( GNOME_DATE_EDIT(sp->de_deadline)); note->prio = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(sp->prio_entry)); note->complete = GTK_ADJUSTMENT(sp->ad_complete)->value; } else { note->deadline = 0; note->prio = 0; note->complete = 0; } return (note); }
void dlg_comment_update (GtkWidget *dlg) { DialogData *data; CommentData *cdata; GList *scan; char *first_image; g_return_if_fail (dlg != NULL); data = g_object_get_data (G_OBJECT (dlg), "dialog_data"); g_return_if_fail (data != NULL); /**/ free_dialog_data (data); data->file_list = gth_window_get_file_list_selection (data->window); if (data->file_list == NULL) { gtk_widget_set_sensitive (data->ok_button, FALSE); gtk_widget_set_sensitive (data->comment_main_box, FALSE); return; } else gtk_widget_set_sensitive (data->comment_main_box, TRUE); /* Set widgets data. */ gtk_option_menu_set_history (GTK_OPTION_MENU (data->date_optionmenu), NO_DATE); gtk_text_buffer_set_text (data->note_text_buffer, "", -1); gtk_entry_set_text (GTK_ENTRY (data->place_entry), ""); data->several_images = g_list_length (data->file_list) > 1; if (data->several_images) { gtk_widget_set_sensitive (data->save_changed_checkbutton, TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->save_changed_checkbutton), TRUE); } else { gtk_widget_set_sensitive (data->save_changed_checkbutton, FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->save_changed_checkbutton), FALSE); } /* Does at least one image have exif data? */ data->have_exif_data = FALSE; for (scan = data->file_list; scan; scan = scan->next) if (have_exif_time (scan->data)) { data->have_exif_data = TRUE; break; } first_image = data->file_list->data; data->original_cdata = cdata = comments_load_comment (first_image, TRUE); if (cdata != NULL) { comment_data_free_keywords (cdata); /* NULL-ify a field if it is not the same in all comments. */ for (scan = data->file_list->next; scan; scan = scan->next) { CommentData *scan_cdata; scan_cdata = comments_load_comment (scan->data, TRUE); /* If there is no comment then all fields must be * considered to differ. */ if ((scan_cdata == NULL) || strcmp_null_tolerant (cdata->place, scan_cdata->place) != 0) { g_free (cdata->place); cdata->place = NULL; } if ((scan_cdata == NULL) || cdata->time != scan_cdata->time) cdata->time = 0; if ((scan_cdata == NULL) || strcmp_null_tolerant (cdata->comment, scan_cdata->comment) != 0) { g_free (cdata->comment); cdata->comment = NULL; } if (scan_cdata == NULL) break; comment_data_free (scan_cdata); } } gtk_widget_set_sensitive (get_exif_date_option_item (data), data->have_exif_data); gtk_widget_set_sensitive (data->date_dateedit, FALSE); if (cdata != NULL) { if (cdata->comment != NULL) { GtkTextIter iter; gtk_text_buffer_set_text (data->note_text_buffer, cdata->comment, strlen (cdata->comment)); gtk_text_buffer_get_iter_at_line (data->note_text_buffer, &iter, 0); gtk_text_buffer_place_cursor (data->note_text_buffer, &iter); } /**/ if (cdata->place != NULL) gtk_entry_set_text (GTK_ENTRY (data->place_entry), cdata->place); /**/ if (cdata->time > 0) { gtk_option_menu_set_history (GTK_OPTION_MENU (data->date_optionmenu), FOLLOWING_DATE); gnome_date_edit_set_time (GNOME_DATE_EDIT (data->date_dateedit), cdata->time); gtk_widget_set_sensitive (data->date_dateedit, TRUE); } else { if (data->several_images) gtk_option_menu_set_history (GTK_OPTION_MENU (data->date_optionmenu), NO_CHANGE); else gtk_option_menu_set_history (GTK_OPTION_MENU (data->date_optionmenu), NO_DATE); gnome_date_edit_set_time (GNOME_DATE_EDIT (data->date_dateedit), get_file_ctime (first_image)); } } else { time_t ctime = get_file_ctime (first_image); gtk_option_menu_set_history (GTK_OPTION_MENU (data->date_optionmenu), NO_DATE); gnome_date_edit_set_time (GNOME_DATE_EDIT (data->date_dateedit), ctime); } }