~ubuntu-branches/ubuntu/maverick/notecase/maverick

« back to all changes in this revision

Viewing changes to src/MainWnd.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Mitsuya Shibata
  • Date: 2008-01-18 01:54:05 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20080118015405-id2r7kphpxlyjzfi
Tags: 1.7.6-0ubuntu1
* New Upstream Release (Closes LP: #182226)
*  Fix failed assertion when change node level (Closes LP: #137464)
* Exclude help.ncd and any .ncd file from compression (Closes LP: #113959)
* Adapted debian/ directory to upstream deb/ directory
* Add debian/watch file
* Remove debian/README.Debian because it is now unnecessary
* Bump up compat level from 4 to 5
* Updating debian/menu file to use the new menu hierarchy
* Modify debian/control file
*  Bump up Standards-Version field from 3.6.1 to 3.7.3
*  Change Section field from x11 to editors
*  Change Build-Depends debhelper version to >=5, libgtk2.0-dev to >=2.4
*  Move Homepage field from description to regular field

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
#include "PasswordDialog.h"
26
26
#include "gui/GuiLanguage.h"
27
27
#include "ShortcutsList.h"
 
28
#include "FindReplaceInfo.h"
28
29
 
29
 
#ifndef _WIN32
30
 
 #include "../res/notecase.xpm"
 
30
#ifdef _NOKIA_MAEMO     
 
31
 #if _NOKIA_MAEMO == 1
 
32
  #include <hildon-widgets/hildon-program.h>
 
33
 #else
 
34
  #include <hildon/hildon-program.h>
 
35
 #endif
31
36
#endif
 
37
 
 
38
#include "../res/notecase.xpm"
32
39
#include "../res/icon_attachment.xpm"
33
40
#include "../res/icon_picture.xpm"
34
41
#include "../res/page_link.xpm"
36
43
#include "../res/text_italic.xpm"
37
44
#include "../res/text_underline.xpm"
38
45
#include "../res/text_strikethrough.xpm"
 
46
#include "../res/text_color.xpm"
 
47
#include "../res/text_bg_color.xpm"
 
48
#include "../res/text_no_format.xpm"
 
49
#include "../res/icon_datetime.xpm"
 
50
#include "../res/internal_lock.xpm"
39
51
 
40
52
extern bool g_bBusyCursor;
41
53
void ShowBusyCursor();
48
60
extern TreeView g_tree;
49
61
extern TextView g_text;
50
62
extern bool g_bMinimizeToTray;
 
63
extern bool g_bCloseToTray;
 
64
extern bool g_bCloseDlgOnTextEnter;
51
65
extern bool g_bAutoSaveOnClose;
 
66
extern bool g_bSkipMemOnlyAutosave;
52
67
extern bool g_bExportDataAsSeparateFile;
53
68
extern MainWindow g_wnd;
54
69
extern IniFile g_objIni;
55
70
extern GuiLanguage g_lang;
56
71
extern bool g_bTreeToTheRight;
 
72
extern bool g_bTreeToTheRightInitial;
 
73
extern GdkColor g_linkColor;
 
74
extern int g_nDefaultNodeIconType;
 
75
extern std::string g_strDefaultIconFile;
 
76
extern FindReplaceInfo g_objSearchInfo;
 
77
 
 
78
extern bool g_bInitialLoad;
 
79
extern bool g_bUpdateMRU;
 
80
extern bool g_bLoadEmbedded;
 
81
extern std::string g_strLoadDocumentFile;
 
82
extern std::string g_strLoadDocumentPass;
 
83
extern int g_nLoadDocumentNodeID;
57
84
 
58
85
extern ShortcutDef g_defTreeNodeNew;
59
86
extern ShortcutDef g_defTreeNodeNewChild;
88
115
static gint dlg_keyboard_handler (GtkWidget *widget, GdkEventKey *event, gpointer data);
89
116
void SetTextViewCaretColor(bool bBlack);
90
117
void RefreshTextViewCaretColor(GdkColor &BkColor);
 
118
gboolean initial_load_timer(gpointer data);
 
119
int  load_file_embedded(int nCurNodeIdx = -1);
 
120
int load_file(const char *filename, const char *szPassword, int nCurNodeIdx);
91
121
 
92
122
MainWindow::MainWindow()
93
123
{
97
127
        m_pToolbarUnderline = NULL;
98
128
        m_pToolbarColor = NULL;
99
129
        m_pToolbarAttachment = NULL;
 
130
        m_pToolbarBkgColor = NULL;
 
131
        m_pToolbarUndo = NULL;
 
132
        m_pToolbarRedo = NULL;
100
133
}
101
134
 
102
135
MainWindow::~MainWindow()
108
141
        g_shortcuts.Load();
109
142
 
110
143
        g_objIni.GetValue("Display", "TreeToTheRight", g_bTreeToTheRight);
 
144
        g_bTreeToTheRightInitial = g_bTreeToTheRight;
111
145
 
112
146
        //set global RTL support
113
147
        if(g_lang.IsCurLangRTL()) //RTL support
288
322
        {
289
323
                gtk_window_set_default_size (GTK_WINDOW (window1), 500, 350);
290
324
                GtkWidget *divider = lookup_widget(window1, "hbox1");
291
 
                gtk_paned_set_position (GTK_PANED(divider), 150);
 
325
                if(g_bTreeToTheRight)
 
326
                        gtk_paned_set_position (GTK_PANED(divider), 350);
 
327
                else
 
328
                        gtk_paned_set_position (GTK_PANED(divider), 150);
292
329
        }
293
330
 
294
331
        //set custom GUI colors
309
346
                gtk_widget_modify_base(GTK_WIDGET(textview), GTK_STATE_NORMAL, &color1);
310
347
                gtk_widget_modify_base(GTK_WIDGET(treeview), GTK_STATE_NORMAL, &color1);
311
348
                RefreshTextViewCaretColor(color1);
312
 
        }
 
349
                
 
350
                //fix for GTK bug - tree view loses background color
 
351
                static const char cursor_color_rc[] =
 
352
                        "style \"aaa\"\n"
 
353
                        "{\n"
 
354
                        "GtkTreeView::odd-row-color=\"#%04x%04x%04x\"\n"
 
355
                        "GtkTreeView::even-row-color =\"#%04x%04x%04x\"\n"
 
356
                        "}\n"
 
357
                        "widget \"*.aaa\" style \"aaa\""; 
 
358
 
 
359
                gchar *rc_temp = g_strdup_printf (cursor_color_rc,
 
360
                                                                        color1.red,
 
361
                                                                        color1.green,
 
362
                                                                        color1.blue,
 
363
                                                                        color1.red,
 
364
                                                                        color1.green,
 
365
                                                                        color1.blue);
 
366
                gtk_rc_parse_string (rc_temp);
 
367
                gtk_widget_set_name(treeview, "aaa");
 
368
                gtk_widget_reset_rc_styles (treeview); 
 
369
                g_free (rc_temp);
 
370
        }
 
371
 
 
372
        //init link color
 
373
        std::string strColor2;
 
374
        g_objIni.GetValue("Display", "LinkColor", strColor2, "#0000FF");
 
375
        GdkColor color2;
 
376
        gdk_color_parse (strColor2.c_str(), &color2);
 
377
        g_linkColor = color2;
 
378
 
 
379
        //init default node icon
 
380
        g_objIni.GetValue("Default", "NodeIconType", g_nDefaultNodeIconType, -2);
 
381
        g_objIni.GetValue("Security", "NodeIconValue", g_strDefaultIconFile, "");
 
382
 
 
383
        //
 
384
        g_objIni.GetValue("Search", "CaseSensitive", g_objSearchInfo.m_bFindSensitive, false);
313
385
 
314
386
        //set custom tab size
315
387
        int     nCustomTabSize = 0;
327
399
                gtk_widget_set_sensitive(new_notecase1, FALSE);
328
400
        }
329
401
 
 
402
        if(g_bInitialLoad)
 
403
                g_timeout_add (0, initial_load_timer, NULL);
 
404
 
 
405
        g_tree.SetFocus();      // set initial focus
 
406
 
330
407
        gtk_widget_show (window1);
331
408
 
332
409
        //load global option
333
410
        g_objIni.GetValue("Display", "MinimizeToTray", g_bMinimizeToTray);
334
 
        restart_autosave();
335
 
 
 
411
        g_objIni.GetValue("Display", "CloseToTray", g_bCloseToTray);
 
412
        g_objIni.GetValue("Default", "CloseDlgOnTxtEnter", g_bCloseDlgOnTextEnter, true);
336
413
        g_objIni.GetValue("Save", "AutoSaveOnClose", g_bAutoSaveOnClose);
 
414
        g_objIni.GetValue("Save",  "SkipMemOnlyAutoSave", g_bSkipMemOnlyAutosave, true);
337
415
        g_objIni.GetValue("Export", "ExportEmbeddedAsSeparateFile", g_bExportDataAsSeparateFile, 1);
 
416
 
 
417
        restart_autosave();
338
418
}
339
419
 
340
420
//TOFIX make class member RefreshTitle() 
378
458
 
379
459
GtkWidget* MainWindow::create_main_win ()
380
460
{
 
461
#ifdef _NOKIA_MAEMO
 
462
    HildonProgram *program;
 
463
    HildonWindow *window1;
 
464
#else
381
465
        GtkWidget *window1;
 
466
#endif
 
467
    
382
468
        GtkWidget *vbox1;
383
469
        GtkWidget *menubar1;
384
470
        GtkWidget *hbox1;
391
477
        GtkWidget *label1;
392
478
        GtkAccelGroup *accel_group;
393
479
        GtkWidget *toolbar1;
394
 
        
 
480
 
 
481
#ifdef _NOKIA_MAEMO     
 
482
        // Create the hildon program and setup the title
 
483
    program = HILDON_PROGRAM(hildon_program_get_instance());
 
484
    g_set_application_name("Notecase");
 
485
#endif
 
486
    
395
487
        accel_group = gtk_accel_group_new ();
396
488
        
397
489
        //prepare version string
399
491
        strApp += " ";
400
492
        strApp += APP_VER_STR;
401
493
 
 
494
#ifdef _NOKIA_MAEMO     
 
495
    // Create HildonWindow and set it to HildonProgram
 
496
    window1 = HILDON_WINDOW(hildon_window_new());
 
497
    hildon_program_add_window(program, window1);
 
498
#else
402
499
        window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
403
500
        gtk_window_set_title (GTK_WINDOW (window1), strApp.c_str());
404
 
        
 
501
#endif
 
502
        
405
503
        vbox1 = gtk_vbox_new (FALSE, 0);
406
504
        gtk_widget_show (vbox1);
407
505
        gtk_container_add (GTK_CONTAINER (window1), vbox1);
408
506
        
 
507
#ifdef _NOKIA_MAEMO
 
508
        menubar1 = NULL;
 
509
#else
409
510
        menubar1 = gtk_menu_bar_new ();
410
511
        gtk_widget_show (menubar1);
411
512
        gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0);
 
513
#endif
412
514
 
413
 
        create_menu(window1, menubar1, accel_group);
 
515
        create_menu(GTK_WIDGET(window1), menubar1, accel_group);
414
516
        
415
517
        // create toolbar
416
518
        toolbar1 = create_toolbar();
 
519
 
 
520
#ifdef _NOKIA_MAEMO
 
521
        hildon_window_add_toolbar(window1, GTK_TOOLBAR(toolbar1));
 
522
#else
417
523
        gtk_box_pack_start (GTK_BOX (vbox1), toolbar1, FALSE, FALSE, 0);
 
524
#endif
418
525
 
419
526
        //
420
527
        hbox1 = gtk_hpaned_new ();
422
529
        gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0);
423
530
        gtk_paned_set_position (GTK_PANED (hbox1), 0);
424
531
        
 
532
        GtkWidget *frameLeft = gtk_frame_new (NULL);
 
533
        GtkWidget *frameRight = gtk_frame_new (NULL);
 
534
        gtk_frame_set_shadow_type (GTK_FRAME (frameLeft), GTK_SHADOW_IN);
 
535
        gtk_frame_set_shadow_type (GTK_FRAME (frameRight), GTK_SHADOW_IN);
 
536
        gtk_widget_show (frameLeft);
 
537
        gtk_widget_show (frameRight);
 
538
 
425
539
        scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
426
540
        gtk_widget_show (scrolledwindow1);
427
541
        
428
542
        if(g_lang.IsCurLangRTL() || g_bTreeToTheRight)  //RTL support
429
 
                gtk_paned_pack2(GTK_PANED(hbox1), scrolledwindow1, FALSE, TRUE);
 
543
                gtk_container_add( GTK_CONTAINER(frameRight), scrolledwindow1 );
430
544
        else
431
 
                gtk_paned_pack1(GTK_PANED(hbox1), scrolledwindow1, FALSE, TRUE);
 
545
                gtk_container_add( GTK_CONTAINER(frameLeft), scrolledwindow1 );
 
546
        
 
547
        gtk_paned_pack1(GTK_PANED(hbox1), frameLeft, FALSE, TRUE);
432
548
 
433
549
        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
434
550
                
439
555
 
440
556
        vbox2 = gtk_vbox_new (FALSE, 0);
441
557
        gtk_widget_show (vbox2);
 
558
        gtk_container_set_border_width (GTK_CONTAINER (vbox2), 2);
442
559
 
443
560
        if(g_lang.IsCurLangRTL() || g_bTreeToTheRight) //RTL support
444
 
                gtk_paned_pack1 (GTK_PANED (hbox1), vbox2, TRUE, TRUE); 
 
561
                gtk_container_add( GTK_CONTAINER(frameLeft), vbox2 );
445
562
        else
446
 
                gtk_paned_pack2 (GTK_PANED (hbox1), vbox2, TRUE, TRUE); 
 
563
                gtk_container_add( GTK_CONTAINER(frameRight), vbox2 );
 
564
 
 
565
        gtk_paned_pack2 (GTK_PANED (hbox1), frameRight, TRUE, TRUE); 
447
566
        
448
567
        //create text node label
449
568
        label1 = gtk_label_new ("");
472
591
        // Store pointers to all widgets, for use by lookup_widget()
473
592
        GLADE_HOOKUP_OBJECT_NO_REF (window1, window1, "window1");
474
593
        GLADE_HOOKUP_OBJECT (window1, vbox1, "vbox1");
 
594
#ifndef _NOKIA_MAEMO
475
595
        GLADE_HOOKUP_OBJECT (window1, menubar1, "menubar1");
 
596
#endif  
476
597
        GLADE_HOOKUP_OBJECT (window1, hbox1, "hbox1");
477
598
        GLADE_HOOKUP_OBJECT (window1, scrolledwindow1, "scrolledwindow1");
478
599
        GLADE_HOOKUP_OBJECT (window1, treeview1, "treeview1");
538
659
#endif
539
660
 
540
661
        //modify context menu for text view widget
541
 
        g_signal_connect(G_OBJECT(textview1), "populate-popup",
542
 
                         G_CALLBACK(on_textview_populate_popup), NULL);
 
662
        g_signal_connect(G_OBJECT(textview1), "populate-popup", G_CALLBACK(on_textview_populate_popup), NULL);
 
663
        
 
664
#ifdef _NOKIA_MAEMO
 
665
        //first one is required for maemo
 
666
        gtk_widget_show_all(GTK_WIDGET(window1));
 
667
        gtk_widget_hide_all(toolbar1);  // hidden on startup
 
668
        gtk_widget_hide(statusbar1);    // hidden on startup
 
669
        gtk_widget_hide(label1);                // hidden on startup (node title bar)
 
670
#endif  
543
671
 
544
 
        return window1;
 
672
        return GTK_WIDGET(window1);
545
673
}
546
674
 
547
675
GtkWidget* MainWindow::create_toolbar()
591
719
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Save"), NULL);
592
720
        g_signal_connect (GTK_OBJECT (toolitem1), "clicked", G_CALLBACK(on_save1_activate), NULL);
593
721
 
594
 
 
 
722
#ifndef _NOKIA_MAEMO
595
723
        button3 = gtk_image_new_from_stock (GTK_STOCK_SAVE_AS, tmp_toolbar_icon_size);
596
724
        gtk_widget_show (button3);
597
725
 
607
735
        gtk_container_add (GTK_CONTAINER (toolbar1), toolitem1);
608
736
 
609
737
 
610
 
        button3 = gtk_image_new_from_stock (GTK_STOCK_GO_BACK, tmp_toolbar_icon_size);
 
738
        button3 = gtk_image_new_from_stock (GTK_STOCK_UNDO, tmp_toolbar_icon_size);
611
739
        gtk_widget_show (button3);
612
740
 
613
741
        toolitem1 = (GtkWidget*) gtk_tool_button_new (button3, _("Undo"));
616
744
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Undo"), NULL);
617
745
        g_signal_connect (GTK_OBJECT (toolitem1), "clicked", G_CALLBACK(on_undo_activate), NULL);
618
746
        gtk_widget_set_sensitive(toolitem1, FALSE);
619
 
        //GLADE_HOOKUP_OBJECT (toolbar1, button3, "tbr_undo");
620
 
 
621
 
 
622
 
        button3 = gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, tmp_toolbar_icon_size);
 
747
        m_pToolbarUndo = toolitem1;
 
748
 
 
749
        button3 = gtk_image_new_from_stock (GTK_STOCK_REDO, tmp_toolbar_icon_size);
623
750
        gtk_widget_show (button3);
624
751
 
625
752
        toolitem1 = (GtkWidget*) gtk_tool_button_new (button3, _("Redo"));
628
755
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Redo"), NULL);
629
756
        g_signal_connect (GTK_OBJECT (toolitem1), "clicked", G_CALLBACK(on_redo_activate), NULL);
630
757
        gtk_widget_set_sensitive(toolitem1, FALSE);
631
 
        //GLADE_HOOKUP_OBJECT (toolbar1, button3, "tbr_redo");
632
 
 
 
758
        m_pToolbarRedo = toolitem1;
633
759
 
634
760
        button3 = gtk_image_new_from_stock (GTK_STOCK_CUT, tmp_toolbar_icon_size);
635
761
        gtk_widget_show (button3);
669
795
        gtk_container_add (GTK_CONTAINER (toolbar1), toolitem1);
670
796
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Delete"), NULL);
671
797
        g_signal_connect (GTK_OBJECT (toolitem1), "clicked", G_CALLBACK(on_delete1_activate), NULL);
 
798
#endif
 
799
 
 
800
//#if 1
 
801
#ifdef _NOKIA_MAEMO
 
802
        //insert node
 
803
        button3 = gtk_image_new_from_stock (GTK_STOCK_ADD, tmp_toolbar_icon_size);
 
804
        gtk_widget_show (button3);
 
805
 
 
806
        toolitem1 = (GtkWidget*) gtk_tool_button_new (button3, _("Insert Node"));
 
807
        gtk_widget_show (toolitem1);
 
808
        gtk_container_add (GTK_CONTAINER (toolbar1), toolitem1);
 
809
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Insert Node"), NULL);
 
810
        g_signal_connect (GTK_OBJECT (toolitem1), "clicked", G_CALLBACK(on_menu_insert_node), NULL);
 
811
 
 
812
        //move node left
 
813
        button3 = gtk_image_new_from_stock (GTK_STOCK_GO_BACK, tmp_toolbar_icon_size);
 
814
        gtk_widget_show (button3);
 
815
 
 
816
        toolitem1 = (GtkWidget*) gtk_tool_button_new (button3, _("Move Node Left"));
 
817
        gtk_widget_show (toolitem1);
 
818
        gtk_container_add (GTK_CONTAINER (toolbar1), toolitem1);
 
819
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Move Node Left"), NULL);
 
820
        g_signal_connect (GTK_OBJECT (toolitem1), "clicked", G_CALLBACK(on_menu_move_left), NULL);
 
821
        
 
822
        //move node right
 
823
        button3 = gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, tmp_toolbar_icon_size);
 
824
        gtk_widget_show (button3);
 
825
 
 
826
        toolitem1 = (GtkWidget*) gtk_tool_button_new (button3, _("Move Node Right"));
 
827
        gtk_widget_show (toolitem1);
 
828
        gtk_container_add (GTK_CONTAINER (toolbar1), toolitem1);
 
829
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Move Node Right"), NULL);
 
830
        g_signal_connect (GTK_OBJECT (toolitem1), "clicked", G_CALLBACK(on_menu_move_right), NULL);
 
831
#endif
672
832
 
673
833
        //append space
674
834
        toolitem1 = (GtkWidget*) gtk_separator_tool_item_new();
675
835
        gtk_widget_show (toolitem1);
676
836
        gtk_container_add (GTK_CONTAINER (toolbar1), toolitem1);
677
837
 
 
838
 
678
839
        // link wizard button
679
840
        GdkPixbuf* pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&page_link);
680
841
        button3 = gtk_image_new_from_pixbuf (pixbuf);
787
948
        m_pToolbarStrike = toolitem1;
788
949
 
789
950
        // insert color button
790
 
        button3 = gtk_image_new_from_stock (GTK_STOCK_SELECT_COLOR, tmp_toolbar_icon_size);
 
951
        //button3 = gtk_image_new_from_stock (GTK_STOCK_SELECT_COLOR, tmp_toolbar_icon_size);
 
952
        pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&text_color_xpm);
 
953
        button3 = gtk_image_new_from_pixbuf (pixbuf);
791
954
        gtk_widget_show (button3);
792
955
 
793
956
        toolitem1 = (GtkWidget*) gtk_toggle_tool_button_new ();
794
 
        gtk_tool_button_set_label(GTK_TOOL_BUTTON(toolitem1), _("Color"));
 
957
        gtk_tool_button_set_label(GTK_TOOL_BUTTON(toolitem1), _("Text Color"));
795
958
        gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(toolitem1), button3);
796
959
 
797
960
        gtk_widget_show (toolitem1);
798
961
        gtk_container_add (GTK_CONTAINER (toolbar1), toolitem1);
799
 
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Color"), NULL);
 
962
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Text Color"), NULL);
800
963
        g_signal_connect (GTK_OBJECT (toolitem1), "clicked", G_CALLBACK(on_text_color_activate), NULL);
801
964
 
802
965
        GLADE_HOOKUP_OBJECT (toolbar1, toolitem1, "toolbar_color");
803
966
        m_pToolbarColor = toolitem1;
804
967
 
 
968
        // insert bkg color button
 
969
        //button3 = gtk_image_new_from_stock (GTK_STOCK_SELECT_COLOR, tmp_toolbar_icon_size);
 
970
        pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&text_bg_color_xpm);
 
971
        button3 = gtk_image_new_from_pixbuf (pixbuf);
 
972
        gtk_widget_show (button3);
 
973
 
 
974
        toolitem1 = (GtkWidget*) gtk_toggle_tool_button_new ();
 
975
        gtk_tool_button_set_label(GTK_TOOL_BUTTON(toolitem1), _("Text Background Color"));
 
976
        gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(toolitem1), button3);
 
977
 
 
978
        gtk_widget_show (toolitem1);
 
979
        gtk_container_add (GTK_CONTAINER (toolbar1), toolitem1);
 
980
        gtk_tool_item_set_tooltip(GTK_TOOL_ITEM(toolitem1), tips, _("Text Background Color"), NULL);
 
981
        g_signal_connect (GTK_OBJECT (toolitem1), "clicked", G_CALLBACK(on_text_background_color_activate), NULL);
 
982
 
 
983
        GLADE_HOOKUP_OBJECT (toolbar1, toolitem1, "toolbar_bkg_color");
 
984
        m_pToolbarBkgColor = toolitem1;
 
985
 
 
986
        //insert help button
805
987
        button3 = gtk_image_new_from_stock (GTK_STOCK_HELP, tmp_toolbar_icon_size);
806
988
        gtk_widget_show (button3);
807
989
 
842
1024
                HideBusyCursor();       //restore the normal cursor for the moment
843
1025
 
844
1026
        //ask user for password
845
 
        PasswordDialog dlg;
 
1027
        PasswordDialog dlg(bSave ? MODE_PASS_NEW : MODE_PASS_VERIFY);
846
1028
 
847
1029
        //set label     
848
 
        std::string strLabel = _("Please enter the password for file\n");
849
 
        strLabel += szFile;
 
1030
        std::string strLabel = _("Please enter the password for file: ");
 
1031
        strLabel += GetBaseName(szFile);
850
1032
        dlg.SetLabel(strLabel.c_str());
851
1033
 
852
 
        //when saving password is checked by inserting it two times
853
 
        if(bSave)
854
 
                dlg.SetRequireCheck(true);
855
 
 
856
1034
        gtk_grab_add( dlg.GetDialog() );        //block all other widgets in the app
857
1035
                        
858
1036
        if(GTK_RESPONSE_OK == dlg.ShowModal())
885
1063
        GtkWidget *save1;
886
1064
        GtkWidget *save_as1;
887
1065
        GtkWidget *reload1;
 
1066
        GtkWidget *lock1;
 
1067
        GtkWidget *change_pass1;
 
1068
        GtkWidget *read_only1;
888
1069
        GtkWidget *separatormenuitem1;
889
1070
        GtkWidget *quit1;
890
1071
        GtkWidget *menuitem2;
900
1081
        GtkWidget *title1;
901
1082
        GtkWidget *statbar1;
902
1083
        GtkWidget *menutool1;
 
1084
        GtkWidget *menufull1;
903
1085
        GtkWidget *wrap1;
904
1086
        GtkWidget *options1;
905
1087
        GtkWidget *shortcuts1;
925
1107
        GtkWidget *underline1;
926
1108
        GtkWidget *strikethrough1;
927
1109
        GtkWidget *color1;
 
1110
        GtkWidget *bkgcolor1;
928
1111
        GtkWidget *picture1;
929
1112
        GtkWidget *remove_format1;
930
1113
        GtkWidget *attachments1;
931
1114
 
 
1115
#ifdef _NOKIA_MAEMO
 
1116
        GtkWidget *maemomenu = gtk_menu_new ();
 
1117
#endif
 
1118
 
932
1119
        menuitem1 = gtk_menu_item_new_with_mnemonic (_("_File"));
933
1120
        gtk_widget_show (menuitem1);
 
1121
#ifdef _NOKIA_MAEMO
 
1122
        gtk_menu_append(GTK_MENU(maemomenu), menuitem1);
 
1123
#else
934
1124
        gtk_container_add (GTK_CONTAINER (menubar1), menuitem1);
 
1125
#endif
935
1126
        
936
1127
        menu1 = gtk_menu_new ();
937
1128
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menu1);
938
1129
 
939
 
        new_notecase1 = gtk_image_menu_item_new_with_mnemonic (_("New No_tecase"));
 
1130
        new_notecase1 = gtk_image_menu_item_new_with_mnemonic (_("New _Window"));
940
1131
        gtk_widget_show (new_notecase1);
941
1132
        gtk_container_add (GTK_CONTAINER (menu1), new_notecase1);
942
 
        icon = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_MENU);
 
1133
                GdkPixbuf *pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&notecase_xpm);
 
1134
        GdkPixbuf *destpix = gdk_pixbuf_scale_simple(pixbuf, 16, 16, GDK_INTERP_BILINEAR);
 
1135
        g_object_unref (G_OBJECT (pixbuf));
 
1136
        icon = gtk_image_new_from_pixbuf (destpix);
943
1137
        gtk_widget_show (icon);
944
1138
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (new_notecase1), icon);
945
1139
        int nPos = g_shortcuts.FindByAction(NC_ACTION_APP_NEW);
946
 
        if(nPos >= 0)
 
1140
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
947
1141
                gtk_widget_add_accelerator (new_notecase1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
948
1142
 
949
1143
        new1 = gtk_image_menu_item_new_with_mnemonic (_("_New"));
953
1147
        gtk_widget_show (icon);
954
1148
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (new1), icon);
955
1149
        nPos = g_shortcuts.FindByAction(NC_ACTION_DOC_NEW);
956
 
        if(nPos >= 0)
 
1150
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
957
1151
                gtk_widget_add_accelerator (new1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
958
1152
        
959
1153
        open1 = gtk_image_menu_item_new_with_mnemonic (_("_Open"));
963
1157
        gtk_widget_show (icon);
964
1158
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (open1), icon);
965
1159
        nPos = g_shortcuts.FindByAction(NC_ACTION_DOC_OPEN);
966
 
        if(nPos >= 0)
 
1160
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
967
1161
                gtk_widget_add_accelerator (open1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
968
1162
 
969
1163
        save1 = gtk_image_menu_item_new_with_mnemonic (_("_Save"));
973
1167
        gtk_widget_show (icon);
974
1168
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save1), icon);
975
1169
        nPos = g_shortcuts.FindByAction(NC_ACTION_DOC_SAVE);
976
 
        if(nPos >= 0)
 
1170
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
977
1171
                gtk_widget_add_accelerator (save1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
978
1172
 
979
1173
        save_as1 = gtk_image_menu_item_new_with_mnemonic (_("Save _As"));
983
1177
        gtk_widget_show (icon);
984
1178
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_as1), icon);
985
1179
        nPos = g_shortcuts.FindByAction(NC_ACTION_DOC_SAVE_AS);
986
 
        if(nPos >= 0)
 
1180
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
987
1181
                gtk_widget_add_accelerator (save_as1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
988
1182
        
989
 
        reload1 = gtk_menu_item_new_with_mnemonic (_("Re_load"));
 
1183
        reload1 = gtk_image_menu_item_new_with_mnemonic (_("Re_load"));
990
1184
        gtk_widget_show (reload1);
991
1185
        gtk_container_add (GTK_CONTAINER (menu1), reload1);
 
1186
        icon = gtk_image_new_from_stock (GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU);
 
1187
        gtk_widget_show (icon);
 
1188
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (reload1), icon);
992
1189
        nPos = g_shortcuts.FindByAction(NC_ACTION_DOC_RELOAD);
993
 
        if(nPos >= 0)
 
1190
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
994
1191
                gtk_widget_add_accelerator (reload1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
995
1192
 
 
1193
        read_only1 = gtk_check_menu_item_new_with_mnemonic (_("Read-Only"));
 
1194
        gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(read_only1), TRUE);     //show check mark always
 
1195
        gtk_widget_show (read_only1);
 
1196
        gtk_container_add (GTK_CONTAINER (menu1), read_only1);
 
1197
        nPos = g_shortcuts.FindByAction(NC_ACTION_READ_ONLY); 
 
1198
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
 
1199
                gtk_widget_add_accelerator (read_only1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
 
1200
 
 
1201
        lock1 = gtk_image_menu_item_new_with_mnemonic (_("_Lock Document"));
 
1202
        gtk_widget_show (lock1);
 
1203
        gtk_container_add (GTK_CONTAINER (menu1), lock1);
 
1204
        pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&lock_xpm);
 
1205
        icon = gtk_image_new_from_pixbuf (pixbuf);
 
1206
        gtk_widget_show (icon);
 
1207
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (lock1), icon);
 
1208
        nPos = g_shortcuts.FindByAction(NC_ACTION_LOCK_DOCUMENT); 
 
1209
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
 
1210
                gtk_widget_add_accelerator (lock1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
 
1211
        gtk_widget_set_sensitive (lock1, FALSE);
 
1212
 
 
1213
        change_pass1 = gtk_menu_item_new_with_mnemonic (_("_Change Password"));
 
1214
        gtk_widget_show (change_pass1);
 
1215
        gtk_container_add (GTK_CONTAINER (menu1), change_pass1);
 
1216
        nPos = g_shortcuts.FindByAction(NC_ACTION_PASSWORD_CHANGE); 
 
1217
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
 
1218
                gtk_widget_add_accelerator (change_pass1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
 
1219
        gtk_widget_set_sensitive (change_pass1, FALSE);
 
1220
 
996
1221
        separatormenuitem1 = gtk_separator_menu_item_new ();
997
1222
        gtk_widget_show (separatormenuitem1);
998
1223
        gtk_container_add (GTK_CONTAINER (menu1), separatormenuitem1);
1003
1228
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_import), NULL);
1004
1229
        gtk_menu_append(menu1, menu_item);
1005
1230
        nPos = g_shortcuts.FindByAction(NC_ACTION_DOC_IMPORT);
1006
 
        if(nPos >= 0)
 
1231
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1007
1232
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1008
1233
        
1009
1234
        menu_item = gtk_menu_item_new_with_mnemonic(_("_Export"));
1011
1236
        g_signal_connect(GTK_OBJECT(menu_item), "activate", G_CALLBACK (on_menu_export), NULL);
1012
1237
        gtk_menu_append(menu1, menu_item);
1013
1238
        nPos = g_shortcuts.FindByAction(NC_ACTION_DOC_EXPORT);
1014
 
        if(nPos >= 0)
 
1239
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1015
1240
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1016
1241
 
1017
1242
        separatormenuitem1 = gtk_separator_menu_item_new ();
1045
1270
        gtk_widget_show (icon);
1046
1271
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (quit1), icon);
1047
1272
        nPos = g_shortcuts.FindByAction(NC_ACTION_APP_QUIT);
1048
 
        if(nPos >= 0)
 
1273
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1049
1274
                gtk_widget_add_accelerator (quit1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1050
1275
 
1051
1276
 
1055
1280
 
1056
1281
        menuitem5 = gtk_menu_item_new_with_mnemonic (_("_Tree"));
1057
1282
        gtk_widget_show (menuitem5);
 
1283
#ifdef _NOKIA_MAEMO
 
1284
        gtk_menu_append(GTK_MENU(maemomenu), menuitem5);
 
1285
#else
1058
1286
        gtk_container_add (GTK_CONTAINER (menubar1), menuitem5);
 
1287
#endif
1059
1288
 
1060
1289
        menu5 = gtk_menu_new ();
1061
1290
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem5), menu5);
1066
1295
        gtk_menu_append(menu5, menu_item);
1067
1296
        gtk_widget_show (menu_item);  // Show the widget 
1068
1297
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_NEW);
1069
 
        if(nPos >= 0)
 
1298
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1070
1299
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1071
1300
        
1072
1301
        menu_item = gtk_menu_item_new_with_mnemonic(_("Insert Child _Node"));
1074
1303
        gtk_menu_append(menu5, menu_item);
1075
1304
        gtk_widget_show (menu_item);  // Show the widget 
1076
1305
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_NEW_CHILD);
1077
 
        if(nPos >= 0)
 
1306
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1078
1307
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1079
1308
        
1080
 
        menu_item = gtk_menu_item_new_with_mnemonic(_("_Delete Node"));
 
1309
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Delete Node"));
1081
1310
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_delete_node), NULL);
1082
1311
        gtk_menu_append(menu5, menu_item);
1083
1312
        gtk_widget_show (menu_item);  // Show the widget
 
1313
        icon = gtk_image_new_from_stock (GTK_STOCK_DELETE, GTK_ICON_SIZE_MENU);
 
1314
        gtk_widget_show (icon);
 
1315
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1084
1316
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_DELETE);
1085
 
        if(nPos >= 0)
 
1317
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1086
1318
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1087
1319
 
1088
1320
        menu_item = gtk_menu_item_new_with_mnemonic(_("_Rename Node"));
1090
1322
        gtk_menu_append(menu5, menu_item);
1091
1323
        gtk_widget_show (menu_item);  // Show the widget 
1092
1324
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_RENAME);
1093
 
        if(nPos >= 0)
 
1325
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1094
1326
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1095
1327
 
1096
1328
        move_item = gtk_menu_item_new_with_mnemonic(_("_Move Node"));
1106
1338
        gtk_menu_append(menu5, menu_item);
1107
1339
        gtk_widget_show (menu_item);  // Show the widget 
1108
1340
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_EXPAND_ALL);
1109
 
        if(nPos >= 0)
 
1341
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1110
1342
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1111
1343
 
1112
1344
        menu_item = gtk_menu_item_new_with_mnemonic(_("_Collapse All"));
1114
1346
        gtk_menu_append(menu5, menu_item);
1115
1347
        gtk_widget_show (menu_item);  // Show the widget 
1116
1348
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_COLAPSE_ALL);
1117
 
        if(nPos >= 0)
 
1349
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1118
1350
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1119
1351
        
1120
 
        menu_item = gtk_menu_item_new_with_mnemonic(_("Node _Properties"));
 
1352
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("Node _Properties"));
1121
1353
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_node_properties), NULL);
1122
1354
        gtk_menu_append(menu5, menu_item);
1123
1355
        gtk_widget_show (menu_item);  // Show the widget 
 
1356
        icon = gtk_image_new_from_stock (GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_MENU);
 
1357
        gtk_widget_show (icon);
 
1358
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1124
1359
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_PROPERTIES);
1125
 
        if(nPos >= 0)
 
1360
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1126
1361
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1127
1362
        
1128
1363
        //"move node" submenu
1129
1364
        submenu = gtk_menu_new ();
1130
1365
 
1131
 
        menu_item = gtk_menu_item_new_with_mnemonic(_("_Up"));
 
1366
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Up"));
1132
1367
        gtk_menu_append(submenu, menu_item);
1133
1368
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_move_up), NULL);
1134
1369
        gtk_widget_show (menu_item);  // Show the widget 
 
1370
        icon = gtk_image_new_from_stock (GTK_STOCK_GO_UP, GTK_ICON_SIZE_MENU);
 
1371
        gtk_widget_show (icon);
 
1372
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1135
1373
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_MOVE_UP);
1136
 
        if(nPos >= 0)
 
1374
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1137
1375
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1138
1376
 
1139
 
        menu_item = gtk_menu_item_new_with_mnemonic(_("_Down"));
 
1377
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Down"));
1140
1378
        gtk_menu_append(submenu, menu_item);
1141
1379
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_move_down), NULL);
1142
1380
        gtk_widget_show (menu_item);  // Show the widget 
 
1381
        icon = gtk_image_new_from_stock (GTK_STOCK_GO_DOWN, GTK_ICON_SIZE_MENU);
 
1382
        gtk_widget_show (icon);
 
1383
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1143
1384
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_MOVE_DOWN);
1144
 
        if(nPos >= 0)
 
1385
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1145
1386
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1146
1387
 
1147
 
        menu_item = gtk_menu_item_new_with_mnemonic(_("_Left"));
 
1388
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Left"));
1148
1389
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_move_left), NULL);
1149
1390
        gtk_menu_append(submenu, menu_item);
1150
1391
        gtk_widget_show (menu_item);  // Show the widget 
 
1392
        icon = gtk_image_new_from_stock (GTK_STOCK_GO_BACK, GTK_ICON_SIZE_MENU);
 
1393
        gtk_widget_show (icon);
 
1394
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1151
1395
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_MOVE_LEFT);
1152
 
        if(nPos >= 0)
 
1396
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1153
1397
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1154
1398
 
1155
 
        menu_item = gtk_menu_item_new_with_mnemonic(_("_Right"));
 
1399
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Right"));
1156
1400
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_move_right), NULL);
1157
1401
        gtk_menu_append(submenu, menu_item);
1158
1402
        gtk_widget_show (menu_item);  // Show the widget 
 
1403
        icon = gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_MENU);
 
1404
        gtk_widget_show (icon);
 
1405
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1159
1406
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_MOVE_RIGHT);
1160
 
        if(nPos >= 0)
 
1407
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1161
1408
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1162
1409
 
1163
1410
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (move_item), submenu);
1165
1412
        //"sort node" submenu
1166
1413
        submenu = gtk_menu_new ();
1167
1414
 
1168
 
        menu_item = gtk_menu_item_new_with_label(_("Sort Children Ascending"));
 
1415
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Sort Children Ascending"));
1169
1416
        gtk_menu_append(submenu, menu_item);
1170
1417
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_sort_child_ascending), NULL);
1171
1418
        gtk_widget_show (menu_item);  // Show the widget 
 
1419
        icon = gtk_image_new_from_stock (GTK_STOCK_SORT_ASCENDING, GTK_ICON_SIZE_MENU);
 
1420
        gtk_widget_show (icon);
 
1421
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1172
1422
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_SORT_CHILDREN_ASC);
1173
 
        if(nPos >= 0)
 
1423
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1174
1424
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1175
1425
 
1176
 
        menu_item = gtk_menu_item_new_with_label(_("Sort Children Descending"));
 
1426
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("Sort _Children Descending"));
1177
1427
        gtk_menu_append(submenu, menu_item);
1178
1428
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_sort_child_descending), NULL);
1179
1429
        gtk_widget_show (menu_item);  // Show the widget 
 
1430
        icon = gtk_image_new_from_stock (GTK_STOCK_SORT_DESCENDING, GTK_ICON_SIZE_MENU);
 
1431
        gtk_widget_show (icon);
 
1432
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1180
1433
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_SORT_CHILDREN_DESC);
1181
 
        if(nPos >= 0)
 
1434
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1182
1435
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1183
1436
 
1184
 
        menu_item = gtk_menu_item_new_with_label(_("Sort Root Ascending"));
 
1437
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("Sort Root Ascending"));
1185
1438
        gtk_menu_append(submenu, menu_item);
1186
1439
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_sort_root_ascending), NULL);
1187
1440
        gtk_widget_show (menu_item);  // Show the widget 
 
1441
        icon = gtk_image_new_from_stock (GTK_STOCK_SORT_ASCENDING, GTK_ICON_SIZE_MENU);
 
1442
        gtk_widget_show (icon);
 
1443
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1188
1444
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_SORT_ROOT_ASC);
1189
 
        if(nPos >= 0)
 
1445
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1190
1446
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1191
1447
 
1192
 
        menu_item = gtk_menu_item_new_with_label(_("Sort Root Descending"));
 
1448
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("Sort Root Descending"));
1193
1449
        gtk_menu_append(submenu, menu_item);
1194
1450
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_sort_root_descending), NULL);
1195
1451
        gtk_widget_show (menu_item);  // Show the widget 
 
1452
        icon = gtk_image_new_from_stock (GTK_STOCK_SORT_DESCENDING, GTK_ICON_SIZE_MENU);
 
1453
        gtk_widget_show (icon);
 
1454
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1196
1455
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_SORT_ROOT_DESC);
1197
 
        if(nPos >= 0)
 
1456
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1198
1457
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1199
1458
 
1200
1459
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (sort_item), submenu);
1201
1460
 
1202
 
        menu_item = gtk_menu_item_new_with_mnemonic(_("Delete all _Finished nodes"));
 
1461
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("Delete all _Finished nodes"));
1203
1462
        gtk_menu_append(menu5, menu_item);
1204
1463
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_delete_finished_nodes), NULL);
1205
1464
        gtk_widget_show (menu_item);  // Show the widget 
 
1465
        icon = gtk_image_new_from_stock (GTK_STOCK_DELETE, GTK_ICON_SIZE_MENU);
 
1466
        gtk_widget_show (icon);
 
1467
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1206
1468
        nPos = g_shortcuts.FindByAction(NC_ACTION_TREE_NODE_DELETE_FINISHED);
1207
 
        if(nPos >= 0)
 
1469
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1208
1470
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1209
1471
 
1210
1472
        //
1213
1475
 
1214
1476
        menuitem2 = gtk_menu_item_new_with_mnemonic (_("_Edit"));
1215
1477
        gtk_widget_show (menuitem2);
 
1478
#ifdef _NOKIA_MAEMO
 
1479
        gtk_menu_append(GTK_MENU(maemomenu), menuitem2);
 
1480
#else
1216
1481
        gtk_container_add (GTK_CONTAINER (menubar1), menuitem2);
 
1482
#endif
1217
1483
        
1218
1484
        menu2 = gtk_menu_new ();
1219
1485
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem2), menu2);
1226
1492
        gtk_widget_show (icon);
1227
1493
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (undo1), icon);
1228
1494
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_UNDO);
1229
 
        if(nPos >= 0)
 
1495
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1230
1496
                gtk_widget_add_accelerator (undo1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1231
1497
 
1232
1498
        redo1 = gtk_image_menu_item_new_with_mnemonic (_("_Redo"));
1237
1503
        gtk_widget_show (icon);
1238
1504
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (redo1), icon);
1239
1505
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_REDO);
1240
 
        if(nPos >= 0)
 
1506
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1241
1507
                gtk_widget_add_accelerator (redo1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1242
1508
 
1243
1509
        separatormenuitem1 = gtk_separator_menu_item_new ();
1252
1518
        gtk_widget_show (icon);
1253
1519
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (cut1), icon);
1254
1520
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_CUT);
1255
 
        if(nPos >= 0)
 
1521
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1256
1522
                gtk_widget_add_accelerator (cut1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1257
1523
 
1258
1524
        copy1 = gtk_image_menu_item_new_with_mnemonic (_("_Copy"));
1262
1528
        gtk_widget_show (icon);
1263
1529
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (copy1), icon);
1264
1530
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_COPY);
1265
 
        if(nPos >= 0)
 
1531
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1266
1532
                gtk_widget_add_accelerator (copy1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1267
1533
 
1268
1534
        paste1 = gtk_image_menu_item_new_with_mnemonic (_("_Paste"));
1272
1538
        gtk_widget_show (icon);
1273
1539
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (paste1), icon);
1274
1540
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_PASTE);
1275
 
        if(nPos >= 0)
 
1541
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1276
1542
                gtk_widget_add_accelerator (paste1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1277
1543
 
1278
1544
        delete1 = gtk_image_menu_item_new_with_mnemonic (_("_Delete"));
1282
1548
        gtk_widget_show (icon);
1283
1549
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (delete1), icon);
1284
1550
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_DELETE);
1285
 
        if(nPos >= 0)
 
1551
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1286
1552
                gtk_widget_add_accelerator (delete1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
1287
1553
 
1288
1554
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("Copy Branch _Structure"));
1293
1559
        gtk_widget_show (icon);
1294
1560
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1295
1561
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_COPY_BR_STRUCT);
1296
 
        if(nPos >= 0)
 
1562
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1297
1563
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));   
1298
1564
 
1299
 
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("Paste Branch To _Root"));
 
1565
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("Paste Branch To Root"));
1300
1566
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_paste_branch_root), NULL);
1301
1567
        gtk_menu_append(menu2, menu_item);
1302
1568
        gtk_widget_show (menu_item);  // Show the widget 
1304
1570
        gtk_widget_show (icon);
1305
1571
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1306
1572
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_PASTE_BR_ROOT);
1307
 
        if(nPos >= 0)
 
1573
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1308
1574
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));   
1309
1575
 
1310
 
        menu_item = gtk_menu_item_new_with_mnemonic(_("Insert _Date/Time"));
 
1576
        menu_item = gtk_image_menu_item_new_with_mnemonic(_("Insert Date/Time"));
1311
1577
        g_signal_connect(menu_item, "activate", G_CALLBACK (on_menu_insert_date_time), NULL);
1312
1578
        gtk_menu_append(menu2, menu_item);
1313
1579
        gtk_widget_show (menu_item);  // Show the widget 
 
1580
        pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&icon_datetime);
 
1581
        icon = gtk_image_new_from_pixbuf (pixbuf);
 
1582
        gtk_widget_show (icon);
 
1583
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon);
1314
1584
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_INSERT_DATETIME);
1315
 
        if(nPos >= 0)
 
1585
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1316
1586
                gtk_widget_add_accelerator (menu_item, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));   
1317
1587
 
1318
1588
        separatormenuitem1 = gtk_separator_menu_item_new ();
1327
1597
        gtk_widget_show (icon);
1328
1598
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (find1), icon);
1329
1599
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_FIND);
1330
 
        if(nPos >= 0)
 
1600
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1331
1601
                gtk_widget_add_accelerator (find1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));       
1332
1602
 
1333
1603
        find2 = gtk_image_menu_item_new_with_mnemonic (_("Find _Next"));
1337
1607
        gtk_widget_show (icon);
1338
1608
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (find2), icon);
1339
1609
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_FIND_NEXT);
1340
 
        if(nPos >= 0)
 
1610
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1341
1611
                gtk_widget_add_accelerator (find2, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));       
1342
1612
 
1343
 
        replace1 = gtk_image_menu_item_new_with_mnemonic (_("Replace"));
 
1613
        replace1 = gtk_image_menu_item_new_with_mnemonic (_("R_eplace"));
1344
1614
        gtk_widget_show (replace1);
1345
1615
        gtk_container_add (GTK_CONTAINER (menu2), replace1);
1346
1616
        icon = gtk_image_new_from_stock (GTK_STOCK_FIND_AND_REPLACE, GTK_ICON_SIZE_MENU);
1347
1617
        gtk_widget_show (icon);
1348
1618
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (replace1), icon);
1349
1619
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_REPLACE);
1350
 
        if(nPos >= 0)
 
1620
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1351
1621
                gtk_widget_add_accelerator (replace1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));    
1352
1622
 
1353
1623
        link1 = gtk_image_menu_item_new_with_mnemonic (_("Link _Wizard"));
1354
1624
        gtk_widget_show (link1);
1355
1625
        gtk_container_add (GTK_CONTAINER (menu2), link1);
1356
 
        GdkPixbuf *pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&page_link);
 
1626
        pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&page_link);
1357
1627
        icon = gtk_image_new_from_pixbuf (pixbuf);
1358
1628
        gtk_widget_show (icon);
1359
1629
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (link1), icon);
1360
1630
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_LINK_WIZARD);
1361
 
        if(nPos >= 0)
 
1631
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1362
1632
                gtk_widget_add_accelerator (link1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));       
1363
1633
 
1364
 
        picture1 = gtk_image_menu_item_new_with_mnemonic (_("Insert Picture"));
 
1634
        picture1 = gtk_image_menu_item_new_with_mnemonic (_("_Insert Picture"));
1365
1635
        gtk_widget_show (picture1);
1366
1636
        gtk_container_add (GTK_CONTAINER (menu2), picture1);
1367
1637
        pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&icon_picture);
1369
1639
        gtk_widget_show (icon);
1370
1640
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (picture1), icon);
1371
1641
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_INSERT_PICTURE);
1372
 
        if(nPos >= 0)
 
1642
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1373
1643
                gtk_widget_add_accelerator (picture1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));    
1374
1644
 
1375
1645
        attachments1 = gtk_image_menu_item_new_with_mnemonic (_("Node _Attachments"));
1380
1650
        gtk_widget_show (icon);
1381
1651
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (attachments1), icon);
1382
1652
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_ATTACHMENTS);
1383
 
        if(nPos >= 0)
 
1653
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1384
1654
                gtk_widget_add_accelerator (attachments1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));        
1385
1655
 
1386
1656
        separatormenuitem1 = gtk_separator_menu_item_new ();
1395
1665
        gtk_widget_show (icon);
1396
1666
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (shortcuts1), icon);
1397
1667
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_SHORTCUTS);
1398
 
        if(nPos >= 0)
 
1668
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1399
1669
                gtk_widget_add_accelerator (shortcuts1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));  
1400
1670
 
1401
1671
        options1 = gtk_image_menu_item_new_with_mnemonic (_("_Options"));
1405
1675
        gtk_widget_show (icon);
1406
1676
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (options1), icon);
1407
1677
        nPos = g_shortcuts.FindByAction(NC_ACTION_EDIT_OPTIONS);
1408
 
        if(nPos >= 0)
 
1678
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1409
1679
                gtk_widget_add_accelerator (options1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));    
1410
1680
 
1411
1681
        //
1414
1684
 
1415
1685
        menuitem2 = gtk_menu_item_new_with_mnemonic (_("F_ormat"));
1416
1686
        gtk_widget_show (menuitem2);
 
1687
#ifdef _NOKIA_MAEMO
 
1688
        gtk_menu_append(GTK_MENU(maemomenu), menuitem2);
 
1689
#else
1417
1690
        gtk_container_add (GTK_CONTAINER (menubar1), menuitem2);
 
1691
#endif
1418
1692
        
1419
1693
        menu2 = gtk_menu_new ();
1420
1694
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem2), menu2);
1428
1702
        gtk_widget_show (icon);
1429
1703
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (bold1), icon);
1430
1704
        nPos = g_shortcuts.FindByAction(NC_ACTION_FORMAT_BOLD);
1431
 
        if(nPos >= 0)
 
1705
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1432
1706
                gtk_widget_add_accelerator (bold1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));       
1433
1707
 
1434
1708
        italic1 = gtk_image_menu_item_new_with_mnemonic (_("_Italic"));
1440
1714
        gtk_widget_show (icon);
1441
1715
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (italic1), icon);
1442
1716
        nPos = g_shortcuts.FindByAction(NC_ACTION_FORMAT_ITALIC);
1443
 
        if(nPos >= 0)
 
1717
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1444
1718
                gtk_widget_add_accelerator (italic1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));     
1445
1719
 
1446
1720
        underline1 = gtk_image_menu_item_new_with_mnemonic (_("_Underline"));
1452
1726
        gtk_widget_show (icon);
1453
1727
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (underline1), icon);
1454
1728
        nPos = g_shortcuts.FindByAction(NC_ACTION_FORMAT_UNDERLINE);
1455
 
        if(nPos >= 0)
 
1729
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1456
1730
                gtk_widget_add_accelerator (underline1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));  
1457
1731
 
1458
1732
        strikethrough1 = gtk_image_menu_item_new_with_mnemonic (_("_Strikethrough"));
1464
1738
        gtk_widget_show (icon);
1465
1739
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (strikethrough1), icon);
1466
1740
        nPos = g_shortcuts.FindByAction(NC_ACTION_FORMAT_STRIKETHROUGH);
1467
 
        if(nPos >= 0)
 
1741
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1468
1742
                gtk_widget_add_accelerator (underline1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));  
1469
1743
 
1470
1744
        color1 = gtk_image_menu_item_new_with_mnemonic (_("_Text color"));
1471
1745
        gtk_widget_show (color1);
1472
1746
        gtk_container_add (GTK_CONTAINER (menu2), color1);
1473
 
        icon = gtk_image_new_from_stock (GTK_STOCK_SELECT_COLOR, GTK_ICON_SIZE_MENU);
 
1747
        pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&text_color_xpm);
 
1748
        icon = gtk_image_new_from_pixbuf (pixbuf);
1474
1749
        gtk_widget_show (icon);
1475
1750
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (color1), icon);
1476
1751
        nPos = g_shortcuts.FindByAction(NC_ACTION_FORMAT_COLOR);
1477
 
        if(nPos >= 0)
 
1752
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1478
1753
                gtk_widget_add_accelerator (color1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));      
1479
1754
 
 
1755
        bkgcolor1 = gtk_image_menu_item_new_with_mnemonic (_("Text Background _Color"));
 
1756
        gtk_widget_show (bkgcolor1);
 
1757
        gtk_container_add (GTK_CONTAINER (menu2), bkgcolor1);
 
1758
        pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&text_bg_color_xpm);
 
1759
        icon = gtk_image_new_from_pixbuf (pixbuf);
 
1760
        gtk_widget_show (icon);
 
1761
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (bkgcolor1), icon);
 
1762
        nPos = g_shortcuts.FindByAction(NC_ACTION_FORMAT_BKG_COLOR);
 
1763
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
 
1764
                gtk_widget_add_accelerator (bkgcolor1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
 
1765
 
1480
1766
        remove_format1 = gtk_image_menu_item_new_with_mnemonic (_("_Remove formatting"));
1481
1767
        gtk_widget_show (remove_format1);
1482
1768
        gtk_container_add (GTK_CONTAINER (menu2), remove_format1);
1483
 
        icon = gtk_image_new_from_stock (GTK_STOCK_SELECT_COLOR, GTK_ICON_SIZE_MENU);
 
1769
        pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **)&text_no_format_xpm);
 
1770
        icon = gtk_image_new_from_pixbuf (pixbuf);
1484
1771
        gtk_widget_show (icon);
1485
1772
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (remove_format1), icon);
1486
1773
        nPos = g_shortcuts.FindByAction(NC_ACTION_FORMAT_REMOVE);
1487
 
        if(nPos >= 0)
 
1774
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1488
1775
                gtk_widget_add_accelerator (remove_format1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));      
1489
1776
        
1490
1777
        //
1492
1779
        //
1493
1780
        menuitem3 = gtk_menu_item_new_with_mnemonic (_("_View"));
1494
1781
        gtk_widget_show (menuitem3);
 
1782
#ifdef _NOKIA_MAEMO
 
1783
        gtk_menu_append(GTK_MENU(maemomenu), menuitem3);
 
1784
#else
1495
1785
        gtk_container_add (GTK_CONTAINER (menubar1), menuitem3);
1496
 
        
 
1786
#endif
 
1787
 
1497
1788
        menu3 = gtk_menu_new ();
1498
1789
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem3), menu3);
1499
1790
 
 
1791
        menufull1 = gtk_check_menu_item_new_with_mnemonic (_("_Full Screen"));
 
1792
        gtk_widget_show (menufull1);
 
1793
        gtk_container_add (GTK_CONTAINER (menu3), menufull1);
 
1794
 
 
1795
#ifdef _NOKIA_MAEMO
 
1796
        gtk_widget_add_accelerator (menufull1, "activate", accel_group, HILDON_HARDKEY_FULLSCREEN, (GdkModifierType)0, (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
 
1797
#endif
 
1798
#ifndef _NOKIA_MAEMO
 
1799
        nPos = g_shortcuts.FindByAction(NC_ACTION_VIEW_FULLSCREEN);
 
1800
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
 
1801
                gtk_widget_add_accelerator (menufull1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));
 
1802
#endif
 
1803
 
1500
1804
        menutool1 = gtk_check_menu_item_new_with_mnemonic (_("_Tool Bar"));
1501
1805
        gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(menutool1), TRUE);      //show check mark always
1502
1806
        gtk_widget_show (menutool1);
1503
1807
        gtk_container_add (GTK_CONTAINER (menu3), menutool1);
1504
1808
        nPos = g_shortcuts.FindByAction(NC_ACTION_VIEW_TOOLBAR);
1505
 
        if(nPos >= 0)
 
1809
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1506
1810
                gtk_widget_add_accelerator (menutool1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));   
1507
1811
 
1508
1812
        title1 = gtk_check_menu_item_new_with_mnemonic (_("_Node Title Bar"));
1510
1814
        gtk_widget_show (title1);
1511
1815
        gtk_container_add (GTK_CONTAINER (menu3), title1);
1512
1816
        nPos = g_shortcuts.FindByAction(NC_ACTION_VIEW_NODE_TITLEBAR);
1513
 
        if(nPos >= 0)
 
1817
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1514
1818
                gtk_widget_add_accelerator (title1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));      
1515
1819
 
1516
1820
        statbar1 = gtk_check_menu_item_new_with_mnemonic (_("_Status Bar"));
 
1821
        gtk_widget_show (statbar1);
1517
1822
        gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(statbar1), TRUE);       //show check mark always
1518
1823
        gtk_container_add (GTK_CONTAINER (menu3), statbar1);
1519
1824
        nPos = g_shortcuts.FindByAction(NC_ACTION_VIEW_STATUS_BAR);
1520
 
        if(nPos >= 0)
 
1825
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1521
1826
                gtk_widget_add_accelerator (statbar1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));    
1522
1827
 
1523
1828
        wrap1 = gtk_check_menu_item_new_with_mnemonic (_("_Wrap"));
1525
1830
        gtk_widget_show (wrap1);
1526
1831
        gtk_container_add (GTK_CONTAINER (menu3), wrap1);
1527
1832
        nPos = g_shortcuts.FindByAction(NC_ACTION_VIEW_WRAP);
1528
 
        if(nPos >= 0)
 
1833
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1529
1834
                gtk_widget_add_accelerator (wrap1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));       
1530
1835
                
1531
 
        textonly1 = gtk_check_menu_item_new_with_mnemonic (_("Change View _Mode"));
1532
 
        gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(textonly1), TRUE);      //show check mark always
 
1836
        textonly1 = gtk_menu_item_new_with_mnemonic (_("Change View _Mode"));
1533
1837
        gtk_widget_show (textonly1);
1534
1838
        gtk_container_add (GTK_CONTAINER (menu3), textonly1);
1535
1839
        nPos = g_shortcuts.FindByAction(NC_ACTION_VIEW_CHANGE_MODE);
1536
 
        if(nPos >= 0)
 
1840
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1537
1841
                gtk_widget_add_accelerator (textonly1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));   
1538
1842
 
1539
1843
        wordcount1 = gtk_menu_item_new_with_mnemonic (_("_Calculate Word Count"));
1540
1844
        gtk_widget_show (wordcount1);
1541
1845
        gtk_container_add (GTK_CONTAINER (menu3), wordcount1);
1542
1846
        nPos = g_shortcuts.FindByAction(NC_ACTION_VIEW_WORD_COUNT);
1543
 
        if(nPos >= 0)
 
1847
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1544
1848
                gtk_widget_add_accelerator (wordcount1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));  
1545
1849
 
1546
1850
        menuitem4 = gtk_menu_item_new_with_mnemonic (_("_Help"));
1547
1851
        gtk_widget_show (menuitem4);
 
1852
#ifdef _NOKIA_MAEMO
 
1853
        gtk_menu_append(GTK_MENU(maemomenu), menuitem4);
 
1854
#else
1548
1855
        gtk_container_add (GTK_CONTAINER (menubar1), menuitem4);
 
1856
#endif
1549
1857
 
1550
1858
        menu4 = gtk_menu_new ();
1551
1859
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem4), menu4);
1557
1865
        gtk_widget_show (icon);
1558
1866
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (help1), icon);
1559
1867
        nPos = g_shortcuts.FindByAction(NC_ACTION_HELP_INDEX);
1560
 
        if(nPos >= 0)
 
1868
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1561
1869
                gtk_widget_add_accelerator (help1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));       
1562
1870
 
1563
1871
        separatormenuitem1 = gtk_separator_menu_item_new ();
1569
1877
        gtk_widget_show (about1);
1570
1878
        gtk_container_add (GTK_CONTAINER (menu4), about1);
1571
1879
        nPos = g_shortcuts.FindByAction(NC_ACTION_HELP_ABOUT);
1572
 
        if(nPos >= 0)
 
1880
        if(nPos >= 0 && !g_shortcuts[nPos].IsEmpty())
1573
1881
                gtk_widget_add_accelerator (about1, "activate", accel_group, g_shortcuts[nPos].m_nKey, (GdkModifierType)g_shortcuts[nPos].GetModifierFlags(), (GtkAccelFlags)(GTK_ACCEL_VISIBLE));      
1574
1882
 
1575
1883
        g_signal_connect (GTK_OBJECT (new_notecase1),    "activate", G_CALLBACK(on_new_notecase1_activate),  NULL);
1578
1886
        g_signal_connect (GTK_OBJECT (save1),   "activate", G_CALLBACK(on_save1_activate), NULL);
1579
1887
        g_signal_connect (GTK_OBJECT (save_as1),"activate", G_CALLBACK(on_save_as1_activate), NULL);
1580
1888
        g_signal_connect (GTK_OBJECT (reload1), "activate", G_CALLBACK(on_reload1_activate), NULL);
 
1889
        g_signal_connect (GTK_OBJECT (read_only1), "activate", G_CALLBACK(on_read_only_activate), NULL);
 
1890
        g_signal_connect (GTK_OBJECT (lock1), "activate", G_CALLBACK(on_lock_document_activate), NULL);
 
1891
        g_signal_connect (GTK_OBJECT (change_pass1), "activate", G_CALLBACK(on_change_pass1_activate), NULL);
1581
1892
        g_signal_connect (GTK_OBJECT (quit1),   "activate", G_CALLBACK(on_quit1_activate), NULL);
1582
1893
        g_signal_connect (GTK_OBJECT (cut1),    "activate", G_CALLBACK(on_cut1_activate), NULL);
1583
1894
        g_signal_connect (GTK_OBJECT (copy1),   "activate", G_CALLBACK(on_copy1_activate), NULL);
1594
1905
        g_signal_connect (GTK_OBJECT (title1),  "activate", G_CALLBACK(on_show_node_titlebar_activate), NULL);
1595
1906
        g_signal_connect (GTK_OBJECT (statbar1),"activate", G_CALLBACK(on_show_status_bar_activate), NULL);
1596
1907
        g_signal_connect (GTK_OBJECT (menutool1),"activate", G_CALLBACK(on_show_toolbar_activate), NULL);
 
1908
        g_signal_connect (GTK_OBJECT (menufull1),"activate", G_CALLBACK(on_full_screen_activate), NULL);
1597
1909
        g_signal_connect (GTK_OBJECT (undo1),   "activate", G_CALLBACK(on_undo_activate), NULL);
1598
1910
        g_signal_connect (GTK_OBJECT (redo1),   "activate", G_CALLBACK(on_redo_activate), NULL);
1599
1911
        g_signal_connect (GTK_OBJECT (link1),   "activate", G_CALLBACK(on_link_wizard_activate), NULL);
1604
1916
        g_signal_connect (GTK_OBJECT (underline1),"activate", G_CALLBACK(on_text_underline_activate), NULL);
1605
1917
        g_signal_connect (GTK_OBJECT (strikethrough1),"activate", G_CALLBACK(on_text_strikethrough_activate), NULL);
1606
1918
        g_signal_connect (GTK_OBJECT (color1),    "activate", G_CALLBACK(on_text_color_activate), NULL);
 
1919
        g_signal_connect (GTK_OBJECT (bkgcolor1),    "activate", G_CALLBACK(on_text_background_color_activate), NULL);
1607
1920
        g_signal_connect (GTK_OBJECT (picture1), "activate", G_CALLBACK(on_insert_picture_activate), NULL);
1608
1921
        g_signal_connect (GTK_OBJECT (remove_format1), "activate", G_CALLBACK(on_remove_format_activate), NULL);
1609
1922
        g_signal_connect (GTK_OBJECT (attachments1), "activate", G_CALLBACK(on_node_attachments_activate), NULL);
1621
1934
        GLADE_HOOKUP_OBJECT (window1, save1, "save1");
1622
1935
        GLADE_HOOKUP_OBJECT (window1, save_as1, "save_as1");
1623
1936
        GLADE_HOOKUP_OBJECT (window1, reload1, "reload1");
 
1937
        GLADE_HOOKUP_OBJECT (window1, read_only1, "read_only1");
 
1938
        GLADE_HOOKUP_OBJECT (window1, lock1, "lock1");
 
1939
        GLADE_HOOKUP_OBJECT (window1, change_pass1, "change_pass1");
1624
1940
        GLADE_HOOKUP_OBJECT (window1, separatormenuitem1, "separatormenuitem1");
1625
1941
        GLADE_HOOKUP_OBJECT (window1, quit1, "quit1");
1626
1942
        GLADE_HOOKUP_OBJECT (window1, menuitem2, "menuitem2");
1643
1959
        GLADE_HOOKUP_OBJECT (window1, italic1, "italic1");
1644
1960
        GLADE_HOOKUP_OBJECT (window1, underline1, "underline1");
1645
1961
        GLADE_HOOKUP_OBJECT (window1, color1, "color1");
 
1962
        GLADE_HOOKUP_OBJECT (window1, bkgcolor1, "bkgcolor1");
1646
1963
        GLADE_HOOKUP_OBJECT (window1, picture1, "picture1");
1647
1964
        GLADE_HOOKUP_OBJECT (window1, remove_format1, "remove_format1");
1648
1965
        GLADE_HOOKUP_OBJECT (window1, attachments1, "attachments1");
 
1966
        GLADE_HOOKUP_OBJECT (window1, menufull1, "menufull1");
 
1967
        
 
1968
#ifdef _NOKIA_MAEMO
 
1969
        hildon_window_set_menu(HILDON_WINDOW(window1), GTK_MENU(maemomenu));
 
1970
#endif
1649
1971
}
1650
1972
 
1651
1973
gboolean on_focus_event (GtkWidget *widget, GtkDirectionType arg1, gpointer user_data)
1768
2090
        SetTextViewCaretColor(bCaretColorBlack);
1769
2091
}
1770
2092
 
 
2093
gboolean initial_load_timer(gpointer data)
 
2094
{
 
2095
        //load initial document if any
 
2096
        if(g_bLoadEmbedded)
 
2097
                load_file_embedded(/*strCurNodeID*/);
 
2098
        else{
 
2099
                //allow password being entered up to 3 times
 
2100
                int nResult = 0;
 
2101
                int nTryCnt = 0;
 
2102
                while(nTryCnt < 3){
 
2103
                        nResult = load_file(g_strLoadDocumentFile.c_str(), g_strLoadDocumentPass.c_str(), g_nLoadDocumentNodeID);
 
2104
                        nTryCnt ++;
 
2105
                        if(DOC_LOAD_WRONG_PASSWORD != nResult){
 
2106
                                break;
 
2107
                        }
 
2108
                }
 
2109
                if(g_bUpdateMRU)
 
2110
                        g_objMRU.Change(g_strLoadDocumentFile.c_str(), (DOC_LOAD_NOT_FOUND != nResult));//update MRU unless file not found
 
2111
        }
 
2112
 
 
2113
        g_strLoadDocumentPass = "";     // reset password
 
2114
 
 
2115
        return FALSE; // kill timer
 
2116
}