diff options
author | Federico Mena Quintero <federico@helixcode.com> | 2000-05-26 22:22:52 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2000-05-26 22:22:52 +0800 |
commit | 144db69758bcf971327694704421f5b5a5e3a0e8 (patch) | |
tree | da649fd81cd8eca6f1696017cc4449611e17f7cc | |
parent | af35801677cee7603f32272c161400b7ec0e5721 (diff) | |
download | gsoc2013-evolution-144db69758bcf971327694704421f5b5a5e3a0e8.tar gsoc2013-evolution-144db69758bcf971327694704421f5b5a5e3a0e8.tar.gz gsoc2013-evolution-144db69758bcf971327694704421f5b5a5e3a0e8.tar.bz2 gsoc2013-evolution-144db69758bcf971327694704421f5b5a5e3a0e8.tar.lz gsoc2013-evolution-144db69758bcf971327694704421f5b5a5e3a0e8.tar.xz gsoc2013-evolution-144db69758bcf971327694704421f5b5a5e3a0e8.tar.zst gsoc2013-evolution-144db69758bcf971327694704421f5b5a5e3a0e8.zip |
Put the main notebook directly under a simple GtkWindow. We are going to
2000-05-25 Federico Mena Quintero <federico@helixcode.com>
* gui/event-editor-dialog.glade: Put the main notebook directly
under a simple GtkWindow. We are going to pull out the notebook
and slap it into our custom-built GnomeApp, anwyays.
* gui/event-editor.c: Made the EventEditor derive from GnomeApp.
Added a BonoboUIHandler for its menu and toolbar.
(make_title_from_ico): Create a nice title for the window.
(get_widgets): Fetch the Glade widgets here instead of all over
the place.
(event_editor_new): Temporary hack to show the dialog here, just
so that I can test it.
* gui/Makefile.am (EXTRA_DIST): Added the Glade messages file.
svn path=/trunk/; revision=3214
-rw-r--r-- | calendar/ChangeLog | 30 | ||||
-rw-r--r-- | calendar/gui/Makefile.am | 21 | ||||
-rw-r--r-- | calendar/gui/event-editor-dialog.glade | 2970 | ||||
-rw-r--r-- | calendar/gui/event-editor.c | 407 | ||||
-rw-r--r-- | calendar/gui/event-editor.h | 58 |
5 files changed, 1941 insertions, 1545 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 4930ec925c..a62b2c29f2 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,18 +1,27 @@ 2000-05-25 Federico Mena Quintero <federico@helixcode.com> + * gui/event-editor-dialog.glade: Put the main notebook directly + under a simple GtkWindow. We are going to pull out the notebook + and slap it into our custom-built GnomeApp, anwyays. + + * gui/event-editor.c: Made the EventEditor derive from GnomeApp. + Added a BonoboUIHandler for its menu and toolbar. + (make_title_from_ico): Create a nice title for the window. + (get_widgets): Fetch the Glade widgets here instead of all over + the place. + (event_editor_new): Temporary hack to show the dialog here, just + so that I can test it. + + * gui/Makefile.am (EXTRA_DIST): Added the Glade messages file. + +2000-05-25 Federico Mena Quintero <federico@helixcode.com> + * gui/main.c (init_bonobo): Do not initialize libglade twice. * gui/component-factory.c (create_view): Set the folder_uri property, otherwise the calendar will not get loaded into the view. -2000-05-24 Federico Mena Quintero <federico@helixcode.com> - - * gui/print.c (range_selector_new): New function to create the - custom range selector. - (print_dialog): New function to show the print dialog. - (print_calendar): Use the print dialog. - 2000-05-25 Christopher James Lahey <clahey@helixcode.com> * gui/main.c: Make it so that warnings don't crash calendar. @@ -39,6 +48,13 @@ * gui/evolution-calendar.gnorba: New. * gui/evolution-calendar.oafinfo: New. +2000-05-24 Federico Mena Quintero <federico@helixcode.com> + + * gui/print.c (range_selector_new): New function to create the + custom range selector. + (print_dialog): New function to show the print dialog. + (print_calendar): Use the print dialog. + 2000-05-24 Christopher James Lahey <clahey@helixcode.com> * gui/Makefile.am: Added libepaned.a. diff --git a/calendar/gui/Makefile.am b/calendar/gui/Makefile.am index 7b4968a9c5..d1d65a344f 100644 --- a/calendar/gui/Makefile.am +++ b/calendar/gui/Makefile.am @@ -34,6 +34,8 @@ LINK_FLAGS = \ gladedir = $(datadir)/evolution/glade glade_DATA = event-editor-dialog.glade +glade_messages = event-editor-dialog.glade.h + bin_PROGRAMS = evolution-calendar evolution_calendar_SOURCES = \ @@ -110,15 +112,16 @@ gnorbadir = $(sysconfdir)/CORBA/servers gnorba_DATA = calendar-control.gnorba evolution-calendar.gnorba endif -EXTRA_DIST = \ - bell.xpm \ - recur.xpm \ - dayview.xpm \ - workweekview.xpm \ - weekview.xpm \ - monthview.xpm \ - yearview.xpm \ - calendar-control.gnorba \ +EXTRA_DIST = \ + $(glade_messages) \ + bell.xpm \ + recur.xpm \ + dayview.xpm \ + workweekview.xpm \ + weekview.xpm \ + monthview.xpm \ + yearview.xpm \ + calendar-control.gnorba \ calendar-control.oafinfo install-data-local: diff --git a/calendar/gui/event-editor-dialog.glade b/calendar/gui/event-editor-dialog.glade index 5f330db77f..7cd4852d67 100644 --- a/calendar/gui/event-editor-dialog.glade +++ b/calendar/gui/event-editor-dialog.glade @@ -14,114 +14,158 @@ <output_support_files>False</output_support_files> <output_build_files>False</output_build_files> <output_translatable_strings>True</output_translatable_strings> - <translatable_strings_file>event-editor-strings</translatable_strings_file> + <translatable_strings_file>event-editor-dialog.glade.h</translatable_strings_file> </project> <widget> - <class>GnomeDialog</class> + <class>GtkWindow</class> <name>event-editor-dialog</name> - <title>Edit appointment</title> - <type>GTK_WINDOW_DIALOG</type> + <title>window1</title> + <type>GTK_WINDOW_TOPLEVEL</type> <position>GTK_WIN_POS_NONE</position> <modal>False</modal> <allow_shrink>False</allow_shrink> - <allow_grow>False</allow_grow> + <allow_grow>True</allow_grow> <auto_shrink>False</auto_shrink> - <auto_close>False</auto_close> - <hide_on_close>False</hide_on_close> <widget> - <class>GtkVBox</class> - <child_name>GnomeDialog:vbox</child_name> - <name>dialog-vbox1</name> - <homogeneous>False</homogeneous> - <spacing>8</spacing> - <child> - <padding>4</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <class>GtkNotebook</class> + <name>dialog-contents</name> + <can_focus>True</can_focus> + <show_tabs>True</show_tabs> + <show_border>True</show_border> + <tab_pos>GTK_POS_TOP</tab_pos> + <scrollable>False</scrollable> + <tab_hborder>2</tab_hborder> + <tab_vborder>2</tab_vborder> + <popup_enable>False</popup_enable> <widget> - <class>GtkHButtonBox</class> - <child_name>GnomeDialog:action_area</child_name> - <name>dialog-action_area1</name> - <layout_style>GTK_BUTTONBOX_END</layout_style> - <spacing>8</spacing> - <child_min_width>85</child_min_width> - <child_min_height>27</child_min_height> - <child_ipad_x>7</child_ipad_x> - <child_ipad_y>0</child_ipad_y> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - <pack>GTK_PACK_END</pack> - </child> + <class>GtkVBox</class> + <name>vbox2</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> <widget> - <class>GtkButton</class> - <name>button1</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <stock_button>GNOME_STOCK_BUTTON_OK</stock_button> - </widget> + <class>GtkHBox</class> + <name>hbox4</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> - <widget> - <class>GtkButton</class> - <name>button2</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <stock_button>GNOME_STOCK_BUTTON_APPLY</stock_button> - </widget> + <widget> + <class>GtkLabel</class> + <name>label13</name> + <label>Owner: </label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> - <widget> - <class>GtkButton</class> - <name>button3</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button> + <widget> + <class>GtkEntry</class> + <name>general-owner</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + </widget> </widget> - </widget> - - <widget> - <class>GtkNotebook</class> - <name>notebook2</name> - <can_focus>True</can_focus> - <show_tabs>True</show_tabs> - <show_border>True</show_border> - <tab_pos>GTK_POS_TOP</tab_pos> - <scrollable>False</scrollable> - <tab_hborder>2</tab_hborder> - <tab_vborder>2</tab_vborder> - <popup_enable>False</popup_enable> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> <widget> - <class>GtkVBox</class> - <name>vbox2</name> + <class>GtkHBox</class> + <name>hbox5</name> <homogeneous>False</homogeneous> <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> <widget> - <class>GtkHBox</class> - <name>hbox4</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> + <class>GtkLabel</class> + <name>label14</name> + <label>Summary:</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> <child> <padding>0</padding> - <expand>True</expand> - <fill>True</fill> + <expand>False</expand> + <fill>False</fill> </child> + </widget> + </widget> + + <widget> + <class>GtkScrolledWindow</class> + <name>scrolledwindow1</name> + <hscrollbar_policy>GTK_POLICY_NEVER</hscrollbar_policy> + <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy> + <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> + <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + + <widget> + <class>GtkText</class> + <name>general-summary</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text></text> + </widget> + </widget> + + <widget> + <class>GtkFrame</class> + <name>frame4</name> + <label>Time</label> + <label_xalign>0</label_xalign> + <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkTable</class> + <name>table3</name> + <rows>2</rows> + <columns>3</columns> + <homogeneous>False</homogeneous> + <row_spacing>0</row_spacing> + <column_spacing>0</column_spacing> <widget> <class>GtkLabel</class> - <name>label13</name> - <label>Owner: </label> + <name>label15</name> + <label>Start time: </label> <justify>GTK_JUSTIFY_CENTER</justify> <wrap>False</wrap> <xalign>0.5</xalign> @@ -129,43 +173,25 @@ <xpad>0</xpad> <ypad>0</ypad> <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkEntry</class> - <name>general-owner</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>False</xfill> + <yfill>False</yfill> </child> </widget> - </widget> - - <widget> - <class>GtkHBox</class> - <name>hbox5</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> <widget> <class>GtkLabel</class> - <name>label14</name> - <label>Summary:</label> + <name>label16</name> + <label>End time: </label> <justify>GTK_JUSTIFY_CENTER</justify> <wrap>False</wrap> <xalign>0.5</xalign> @@ -173,659 +199,669 @@ <xpad>0</xpad> <ypad>0</ypad> <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>False</xfill> + <yfill>False</yfill> </child> </widget> - </widget> - - <widget> - <class>GtkScrolledWindow</class> - <name>scrolledwindow1</name> - <hscrollbar_policy>GTK_POLICY_NEVER</hscrollbar_policy> - <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy> - <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> - <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> <widget> - <class>GtkText</class> - <name>general-summary</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text></text> + <class>Custom</class> + <name>start-time</name> + <creation_function>make_date_edit_with_time</creation_function> + <string1></string1> + <string2></string2> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Tue, 16 May 2000 19:11:05 GMT</last_modification_time> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> </widget> - </widget> - - <widget> - <class>GtkFrame</class> - <name>frame4</name> - <label>Time</label> - <label_xalign>0</label_xalign> - <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> <widget> - <class>GtkTable</class> - <name>table3</name> - <rows>2</rows> - <columns>3</columns> - <homogeneous>False</homogeneous> - <row_spacing>0</row_spacing> - <column_spacing>0</column_spacing> - - <widget> - <class>GtkLabel</class> - <name>label15</name> - <label>Start time: </label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> + <class>Custom</class> + <name>end-time</name> + <creation_function>make_date_edit_with_time</creation_function> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Tue, 16 May 2000 19:11:10 GMT</last_modification_time> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>False</xfill> - <yfill>False</yfill> - </child> - </widget> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>True</yfill> + </child> + </widget> - <widget> - <class>GtkLabel</class> - <name>label16</name> - <label>End time: </label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkCheckButton</class> + <name>all-day-event</name> + <can_focus>True</can_focus> + <label>All day event</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>False</xfill> - <yfill>False</yfill> - </child> - </widget> - - <widget> - <class>Custom</class> - <name>start-time</name> - <creation_function>make_date_edit_with_time</creation_function> - <string1></string1> - <string2></string2> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Tue, 16 May 2000 19:11:05 GMT</last_modification_time> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> - <class>Custom</class> - <name>end-time</name> - <creation_function>make_date_edit_with_time</creation_function> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Tue, 16 May 2000 19:11:10 GMT</last_modification_time> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> - - <widget> - <class>GtkCheckButton</class> - <name>all-day-event</name> - <can_focus>True</can_focus> - <label>All day event</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>False</xfill> - <yfill>False</yfill> - </child> - </widget> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>False</xfill> + <yfill>False</yfill> + </child> </widget> </widget> + </widget> + + <widget> + <class>GtkFrame</class> + <name>frame6</name> + <label>Alarms</label> + <label_xalign>0</label_xalign> + <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> <widget> - <class>GtkFrame</class> - <name>frame6</name> - <label>Alarms</label> - <label_xalign>0</label_xalign> - <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <class>GtkTable</class> + <name>table4</name> + <rows>4</rows> + <columns>5</columns> + <homogeneous>False</homogeneous> + <row_spacing>0</row_spacing> + <column_spacing>0</column_spacing> <widget> - <class>GtkTable</class> - <name>table4</name> - <rows>4</rows> - <columns>5</columns> - <homogeneous>False</homogeneous> - <row_spacing>0</row_spacing> - <column_spacing>0</column_spacing> - - <widget> - <class>GtkSpinButton</class> - <name>alarm-display-amount</name> - <can_focus>True</can_focus> - <climb_rate>1</climb_rate> - <digits>0</digits> - <numeric>True</numeric> - <update_policy>GTK_UPDATE_ALWAYS</update_policy> - <snap>False</snap> - <wrap>False</wrap> - <value>0</value> - <lower>0</lower> - <upper>100</upper> - <step>1</step> - <page>10</page> - <page_size>10</page_size> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <class>GtkSpinButton</class> + <name>alarm-display-amount</name> + <can_focus>True</can_focus> + <climb_rate>1</climb_rate> + <digits>0</digits> + <numeric>True</numeric> + <update_policy>GTK_UPDATE_ALWAYS</update_policy> + <snap>False</snap> + <wrap>False</wrap> + <value>0</value> + <lower>0</lower> + <upper>100</upper> + <step>1</step> + <page>10</page> + <page_size>10</page_size> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkSpinButton</class> - <name>alarm-audio-amount</name> - <can_focus>True</can_focus> - <climb_rate>1</climb_rate> - <digits>0</digits> - <numeric>False</numeric> - <update_policy>GTK_UPDATE_ALWAYS</update_policy> - <snap>False</snap> - <wrap>False</wrap> - <value>0</value> - <lower>0</lower> - <upper>100</upper> - <step>1</step> - <page>10</page> - <page_size>10</page_size> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkSpinButton</class> + <name>alarm-audio-amount</name> + <can_focus>True</can_focus> + <climb_rate>1</climb_rate> + <digits>0</digits> + <numeric>False</numeric> + <update_policy>GTK_UPDATE_ALWAYS</update_policy> + <snap>False</snap> + <wrap>False</wrap> + <value>0</value> + <lower>0</lower> + <upper>100</upper> + <step>1</step> + <page>10</page> + <page_size>10</page_size> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkSpinButton</class> - <name>alarm-program-amount</name> - <can_focus>True</can_focus> - <climb_rate>1</climb_rate> - <digits>0</digits> - <numeric>False</numeric> - <update_policy>GTK_UPDATE_ALWAYS</update_policy> - <snap>False</snap> - <wrap>False</wrap> - <value>0</value> - <lower>0</lower> - <upper>100</upper> - <step>1</step> - <page>10</page> - <page_size>10</page_size> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkSpinButton</class> + <name>alarm-program-amount</name> + <can_focus>True</can_focus> + <climb_rate>1</climb_rate> + <digits>0</digits> + <numeric>False</numeric> + <update_policy>GTK_UPDATE_ALWAYS</update_policy> + <snap>False</snap> + <wrap>False</wrap> + <value>0</value> + <lower>0</lower> + <upper>100</upper> + <step>1</step> + <page>10</page> + <page_size>10</page_size> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkSpinButton</class> - <name>alarm-mail-amount</name> - <can_focus>True</can_focus> - <climb_rate>1</climb_rate> - <digits>0</digits> - <numeric>False</numeric> - <update_policy>GTK_UPDATE_ALWAYS</update_policy> - <snap>False</snap> - <wrap>False</wrap> - <value>0</value> - <lower>0</lower> - <upper>100</upper> - <step>1</step> - <page>10</page> - <page_size>10</page_size> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkSpinButton</class> + <name>alarm-mail-amount</name> + <can_focus>True</can_focus> + <climb_rate>1</climb_rate> + <digits>0</digits> + <numeric>False</numeric> + <update_policy>GTK_UPDATE_ALWAYS</update_policy> + <snap>False</snap> + <wrap>False</wrap> + <value>0</value> + <lower>0</lower> + <upper>100</upper> + <step>1</step> + <page>10</page> + <page_size>10</page_size> + <child> + <left_attach>1</left_attach> + <right_attach>2</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkOptionMenu</class> - <name>alarm-display-unit</name> - <can_focus>True</can_focus> - <items>Minutes + <widget> + <class>GtkOptionMenu</class> + <name>alarm-display-unit</name> + <can_focus>True</can_focus> + <items>Minutes Hours Days </items> - <initial_choice>0</initial_choice> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>False</xfill> - <yfill>False</yfill> - </child> - </widget> + <initial_choice>0</initial_choice> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>False</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkOptionMenu</class> - <name>alarm-audio-unit</name> - <can_focus>True</can_focus> - <items>Minutes + <widget> + <class>GtkOptionMenu</class> + <name>alarm-audio-unit</name> + <can_focus>True</can_focus> + <items>Minutes Hours Days </items> - <initial_choice>0</initial_choice> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>False</xfill> - <yfill>False</yfill> - </child> - </widget> + <initial_choice>0</initial_choice> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>False</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkOptionMenu</class> - <name>alarm-program-unit</name> - <can_focus>True</can_focus> - <items>Minutes + <widget> + <class>GtkOptionMenu</class> + <name>alarm-program-unit</name> + <can_focus>True</can_focus> + <items>Minutes Hours Days </items> - <initial_choice>0</initial_choice> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>False</xfill> - <yfill>False</yfill> - </child> - </widget> + <initial_choice>0</initial_choice> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>False</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkOptionMenu</class> - <name>alarm-mail-unit</name> - <can_focus>True</can_focus> - <items>Minutes + <widget> + <class>GtkOptionMenu</class> + <name>alarm-mail-unit</name> + <can_focus>True</can_focus> + <items>Minutes Hours Days </items> - <initial_choice>0</initial_choice> - <child> - <left_attach>2</left_attach> - <right_attach>3</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>False</xfill> - <yfill>False</yfill> - </child> - </widget> + <initial_choice>0</initial_choice> + <child> + <left_attach>2</left_attach> + <right_attach>3</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>False</xfill> + <yfill>False</yfill> + </child> + </widget> + + <widget> + <class>GtkEntry</class> + <name>mail-to</name> + <can_focus>True</can_focus> + <editable>True</editable> + <text_visible>True</text_visible> + <text_max_length>0</text_max_length> + <text></text> + <child> + <left_attach>4</left_attach> + <right_attach>5</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> + + <widget> + <class>GnomeFileEntry</class> + <name>run-program-file-entry</name> + <max_saved>10</max_saved> + <directory>False</directory> + <modal>False</modal> + <child> + <left_attach>4</left_attach> + <right_attach>5</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>True</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> <widget> <class>GtkEntry</class> - <name>mail-to</name> + <child_name>GnomeEntry:entry</child_name> + <name>run-program</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> <text_max_length>0</text_max_length> <text></text> - <child> - <left_attach>4</left_attach> - <right_attach>5</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> - - <widget> - <class>GnomeFileEntry</class> - <name>run-program-file-entry</name> - <max_saved>10</max_saved> - <directory>False</directory> - <modal>False</modal> - <child> - <left_attach>4</left_attach> - <right_attach>5</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - - <widget> - <class>GtkEntry</class> - <child_name>GnomeEntry:entry</child_name> - <name>run-program</name> - <can_focus>True</can_focus> - <editable>True</editable> - <text_visible>True</text_visible> - <text_max_length>0</text_max_length> - <text></text> - </widget> </widget> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>alarm-display</name> - <can_focus>True</can_focus> - <label>Display</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>alarm-display</name> + <can_focus>True</can_focus> + <label>Display</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>0</top_attach> + <bottom_attach>1</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>alarm-audio</name> - <can_focus>True</can_focus> - <label>Audio</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>alarm-audio</name> + <can_focus>True</can_focus> + <label>Audio</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>1</top_attach> + <bottom_attach>2</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>alarm-program</name> - <can_focus>True</can_focus> - <label>Program</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>alarm-program</name> + <can_focus>True</can_focus> + <label>Program</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>alarm-mail</name> - <can_focus>True</can_focus> - <label>Mail</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>alarm-mail</name> + <can_focus>True</can_focus> + <label>Mail</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <left_attach>0</left_attach> + <right_attach>1</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> + <xpad>0</xpad> + <ypad>0</ypad> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkLabel</class> - <name>label18</name> - <label>Mail to</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkLabel</class> + <name>label18</name> + <label>Mail to</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>3</top_attach> + <bottom_attach>4</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> + </widget> - <widget> - <class>GtkLabel</class> - <name>label17</name> - <label>Run program</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> + <widget> + <class>GtkLabel</class> + <name>label17</name> + <label>Run program</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <left_attach>3</left_attach> + <right_attach>4</right_attach> + <top_attach>2</top_attach> + <bottom_attach>3</bottom_attach> <xpad>0</xpad> <ypad>0</ypad> - <child> - <left_attach>3</left_attach> - <right_attach>4</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <xexpand>False</xexpand> + <yexpand>False</yexpand> + <xshrink>False</xshrink> + <yshrink>False</yshrink> + <xfill>True</xfill> + <yfill>False</yfill> + </child> </widget> </widget> + </widget> + + <widget> + <class>GtkFrame</class> + <name>frame5</name> + <label>Classification</label> + <label_xalign>0</label_xalign> + <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> <widget> - <class>GtkFrame</class> - <name>frame5</name> - <label>Classification</label> - <label_xalign>0</label_xalign> - <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <class>GtkHBox</class> + <name>hbox6</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + + <widget> + <class>GtkRadioButton</class> + <name>classification-public</name> + <can_focus>True</can_focus> + <label>Public</label> + <active>True</active> + <draw_indicator>True</draw_indicator> + <group>classification_radio_group</group> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + + <widget> + <class>GtkRadioButton</class> + <name>classification-private</name> + <can_focus>True</can_focus> + <label>Private</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <group>classification_radio_group</group> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + + <widget> + <class>GtkRadioButton</class> + <name>classification-confidential</name> + <can_focus>True</can_focus> + <label>Confidential</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <group>classification_radio_group</group> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + </widget> + </widget> + </widget> + + <widget> + <class>GtkLabel</class> + <child_name>Notebook:tab</child_name> + <name>label11</name> + <label>General</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + </widget> + + <widget> + <class>GtkVBox</class> + <name>vbox3</name> + <border_width>4</border_width> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + + <widget> + <class>GtkFrame</class> + <name>frame8</name> + <label>Recurrence rule</label> + <label_xalign>0</label_xalign> + <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkHBox</class> + <name>hbox7</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> <widget> - <class>GtkHBox</class> - <name>hbox6</name> + <class>GtkVBox</class> + <name>vbox4</name> <homogeneous>False</homogeneous> <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> <widget> <class>GtkRadioButton</class> - <name>classification-public</name> + <name>recurrence-rule-none</name> <can_focus>True</can_focus> - <label>Public</label> + <label>None</label> <active>True</active> <draw_indicator>True</draw_indicator> - <group>classification_radio_group</group> + <group>recurrence_rule_group</group> <child> <padding>0</padding> <expand>False</expand> @@ -835,12 +871,12 @@ Days <widget> <class>GtkRadioButton</class> - <name>classification-private</name> + <name>recurrence-rule-daily</name> <can_focus>True</can_focus> - <label>Private</label> + <label>Daily</label> <active>False</active> <draw_indicator>True</draw_indicator> - <group>classification_radio_group</group> + <group>recurrence_rule_group</group> <child> <padding>0</padding> <expand>False</expand> @@ -850,297 +886,110 @@ Days <widget> <class>GtkRadioButton</class> - <name>classification-confidential</name> + <name>recurrence-rule-weekly</name> <can_focus>True</can_focus> - <label>Confidential</label> + <label>Weekly</label> <active>False</active> <draw_indicator>True</draw_indicator> - <group>classification_radio_group</group> + <group>recurrence_rule_group</group> <child> <padding>0</padding> <expand>False</expand> <fill>False</fill> </child> </widget> - </widget> - </widget> - </widget> - - <widget> - <class>GtkLabel</class> - <child_name>Notebook:tab</child_name> - <name>label11</name> - <label>General</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - </widget> - - <widget> - <class>GtkVBox</class> - <name>vbox3</name> - <border_width>4</border_width> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - - <widget> - <class>GtkFrame</class> - <name>frame8</name> - <label>Recurrence rule</label> - <label_xalign>0</label_xalign> - <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> - - <widget> - <class>GtkHBox</class> - <name>hbox7</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> <widget> - <class>GtkVBox</class> - <name>vbox4</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> + <class>GtkRadioButton</class> + <name>recurrence-rule-monthly</name> + <can_focus>True</can_focus> + <label>Monthly</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <group>recurrence_rule_group</group> <child> <padding>0</padding> <expand>False</expand> <fill>False</fill> </child> - - <widget> - <class>GtkRadioButton</class> - <name>recurrence-rule-none</name> - <can_focus>True</can_focus> - <label>None</label> - <active>True</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_rule_group</group> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkRadioButton</class> - <name>recurrence-rule-daily</name> - <can_focus>True</can_focus> - <label>Daily</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_rule_group</group> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkRadioButton</class> - <name>recurrence-rule-weekly</name> - <can_focus>True</can_focus> - <label>Weekly</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_rule_group</group> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkRadioButton</class> - <name>recurrence-rule-monthly</name> - <can_focus>True</can_focus> - <label>Monthly</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_rule_group</group> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkRadioButton</class> - <name>recurrence-rule-yearly</name> - <can_focus>True</can_focus> - <label>Yearly</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_rule_group</group> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> </widget> <widget> - <class>GtkVSeparator</class> - <name>vseparator1</name> + <class>GtkRadioButton</class> + <name>recurrence-rule-yearly</name> + <can_focus>True</can_focus> + <label>Yearly</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <group>recurrence_rule_group</group> <child> <padding>0</padding> <expand>False</expand> - <fill>True</fill> + <fill>False</fill> </child> </widget> + </widget> - <widget> - <class>GtkNotebook</class> - <name>recurrence-rule-notebook</name> - <show_tabs>False</show_tabs> - <show_border>True</show_border> - <tab_pos>GTK_POS_TOP</tab_pos> - <scrollable>False</scrollable> - <tab_hborder>2</tab_hborder> - <tab_vborder>2</tab_vborder> - <popup_enable>False</popup_enable> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> - - <widget> - <class>Placeholder</class> - </widget> - - <widget> - <class>GtkLabel</class> - <child_name>Notebook:tab</child_name> - <name>label23</name> - <label>label23</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - </widget> - - <widget> - <class>GtkAlignment</class> - <name>alignment1</name> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xscale>1</xscale> - <yscale>1</yscale> - - <widget> - <class>GtkVBox</class> - <name>vbox7</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - - <widget> - <class>GtkHBox</class> - <name>hbox13</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> + <widget> + <class>GtkVSeparator</class> + <name>vseparator1</name> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> + </widget> - <widget> - <class>GtkLabel</class> - <name>label31</name> - <label>Every </label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkNotebook</class> + <name>recurrence-rule-notebook</name> + <show_tabs>False</show_tabs> + <show_border>True</show_border> + <tab_pos>GTK_POS_TOP</tab_pos> + <scrollable>False</scrollable> + <tab_hborder>2</tab_hborder> + <tab_vborder>2</tab_vborder> + <popup_enable>False</popup_enable> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> - <widget> - <class>GtkSpinButton</class> - <name>recurrence-rule-daily-days</name> - <can_focus>True</can_focus> - <climb_rate>1</climb_rate> - <digits>0</digits> - <numeric>False</numeric> - <update_policy>GTK_UPDATE_ALWAYS</update_policy> - <snap>False</snap> - <wrap>False</wrap> - <value>1</value> - <lower>0</lower> - <upper>100</upper> - <step>1</step> - <page>10</page> - <page_size>10</page_size> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> - </widget> + <widget> + <class>Placeholder</class> + </widget> - <widget> - <class>GtkLabel</class> - <name>label32</name> - <label>day(s)</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - </widget> - </widget> - </widget> + <widget> + <class>GtkLabel</class> + <child_name>Notebook:tab</child_name> + <name>label23</name> + <label>label23</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + </widget> - <widget> - <class>GtkLabel</class> - <child_name>Notebook:tab</child_name> - <name>label24</name> - <label>label24</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - </widget> + <widget> + <class>GtkAlignment</class> + <name>alignment1</name> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xscale>1</xscale> + <yscale>1</yscale> <widget> <class>GtkVBox</class> - <name>vbox8</name> + <name>vbox7</name> <homogeneous>False</homogeneous> <spacing>0</spacing> <widget> <class>GtkHBox</class> - <name>hbox14</name> + <name>hbox13</name> <homogeneous>False</homogeneous> <spacing>0</spacing> <child> @@ -1151,7 +1000,7 @@ Days <widget> <class>GtkLabel</class> - <name>label33</name> + <name>label31</name> <label>Every </label> <justify>GTK_JUSTIFY_CENTER</justify> <wrap>False</wrap> @@ -1168,7 +1017,7 @@ Days <widget> <class>GtkSpinButton</class> - <name>recurrence-rule-weekly-weeks</name> + <name>recurrence-rule-daily-days</name> <can_focus>True</can_focus> <climb_rate>1</climb_rate> <digits>0</digits> @@ -1191,8 +1040,8 @@ Days <widget> <class>GtkLabel</class> - <name>label34</name> - <label>week(s)</label> + <name>label32</name> + <label>day(s)</label> <justify>GTK_JUSTIFY_CENTER</justify> <wrap>False</wrap> <xalign>0.5</xalign> @@ -1206,140 +1055,241 @@ Days </child> </widget> </widget> + </widget> + </widget> + + <widget> + <class>GtkLabel</class> + <child_name>Notebook:tab</child_name> + <name>label24</name> + <label>label24</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + </widget> + + <widget> + <class>GtkVBox</class> + <name>vbox8</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + + <widget> + <class>GtkHBox</class> + <name>hbox14</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> <widget> - <class>GtkHBox</class> - <name>hbox15</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> + <class>GtkLabel</class> + <name>label33</name> + <label>Every </label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + + <widget> + <class>GtkSpinButton</class> + <name>recurrence-rule-weekly-weeks</name> + <can_focus>True</can_focus> + <climb_rate>1</climb_rate> + <digits>0</digits> + <numeric>False</numeric> + <update_policy>GTK_UPDATE_ALWAYS</update_policy> + <snap>False</snap> + <wrap>False</wrap> + <value>1</value> + <lower>0</lower> + <upper>100</upper> + <step>1</step> + <page>10</page> + <page_size>10</page_size> <child> <padding>0</padding> <expand>False</expand> <fill>True</fill> </child> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>recurrence-rule-weekly-mon</name> - <can_focus>True</can_focus> - <label>Mon</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkLabel</class> + <name>label34</name> + <label>week(s)</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>recurrence-rule-weekly-tue</name> - <can_focus>True</can_focus> - <label>Tue</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkHBox</class> + <name>hbox15</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> - <widget> - <class>GtkCheckButton</class> - <name>recurrence-rule-weekly-wed</name> - <can_focus>True</can_focus> - <label>Wed</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>recurrence-rule-weekly-mon</name> + <can_focus>True</can_focus> + <label>Mon</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>recurrence-rule-weekly-thu</name> - <can_focus>True</can_focus> - <label>Thu</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>recurrence-rule-weekly-tue</name> + <can_focus>True</can_focus> + <label>Tue</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>recurrence-rule-weekly-fri</name> - <can_focus>True</can_focus> - <label>Fri</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>recurrence-rule-weekly-wed</name> + <can_focus>True</can_focus> + <label>Wed</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>recurrence-rule-weekly-sat</name> - <can_focus>True</can_focus> - <label>Sat</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>recurrence-rule-weekly-thu</name> + <can_focus>True</can_focus> + <label>Thu</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> - <widget> - <class>GtkCheckButton</class> - <name>recurrence-rule-weekly-sun</name> - <can_focus>True</can_focus> - <label>Sun</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkCheckButton</class> + <name>recurrence-rule-weekly-fri</name> + <can_focus>True</can_focus> + <label>Fri</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> </widget> - </widget> - <widget> - <class>GtkLabel</class> - <child_name>Notebook:tab</child_name> - <name>label25</name> - <label>label25</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> + <widget> + <class>GtkCheckButton</class> + <name>recurrence-rule-weekly-sat</name> + <can_focus>True</can_focus> + <label>Sat</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + + <widget> + <class>GtkCheckButton</class> + <name>recurrence-rule-weekly-sun</name> + <can_focus>True</can_focus> + <label>Sun</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> </widget> + </widget> + + <widget> + <class>GtkLabel</class> + <child_name>Notebook:tab</child_name> + <name>label25</name> + <label>label25</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + </widget> + + <widget> + <class>GtkHBox</class> + <name>hbox16</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> <widget> - <class>GtkHBox</class> - <name>hbox16</name> + <class>GtkVBox</class> + <name>vbox9</name> <homogeneous>False</homogeneous> <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> <widget> <class>GtkVBox</class> - <name>vbox9</name> + <name>vbox10</name> <homogeneous>False</homogeneous> <spacing>0</spacing> <child> @@ -1349,8 +1299,8 @@ Days </child> <widget> - <class>GtkVBox</class> - <name>vbox10</name> + <class>GtkHBox</class> + <name>hbox17</name> <homogeneous>False</homogeneous> <spacing>0</spacing> <child> @@ -1360,121 +1310,110 @@ Days </child> <widget> - <class>GtkHBox</class> - <name>hbox17</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> + <class>GtkRadioButton</class> + <name>recurrence-rule-monthly-on-day</name> + <can_focus>True</can_focus> + <label>Recur on the</label> + <active>True</active> + <draw_indicator>True</draw_indicator> + <group>recurrence_rule_monthly_group</group> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + + <widget> + <class>GtkSpinButton</class> + <name>recurrence-rule-monthly-day</name> + <can_focus>True</can_focus> + <climb_rate>1</climb_rate> + <digits>0</digits> + <numeric>False</numeric> + <update_policy>GTK_UPDATE_ALWAYS</update_policy> + <snap>False</snap> + <wrap>False</wrap> + <value>1</value> + <lower>0</lower> + <upper>100</upper> + <step>1</step> + <page>10</page> + <page_size>10</page_size> <child> <padding>0</padding> - <expand>True</expand> + <expand>False</expand> <fill>True</fill> </child> + </widget> - <widget> - <class>GtkRadioButton</class> - <name>recurrence-rule-monthly-on-day</name> - <can_focus>True</can_focus> - <label>Recur on the</label> - <active>True</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_rule_monthly_group</group> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkSpinButton</class> - <name>recurrence-rule-monthly-day</name> - <can_focus>True</can_focus> - <climb_rate>1</climb_rate> - <digits>0</digits> - <numeric>False</numeric> - <update_policy>GTK_UPDATE_ALWAYS</update_policy> - <snap>False</snap> - <wrap>False</wrap> - <value>1</value> - <lower>0</lower> - <upper>100</upper> - <step>1</step> - <page>10</page> - <page_size>10</page_size> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> - </widget> - - <widget> - <class>GtkLabel</class> - <name>label35</name> - <label>th day of the month</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkLabel</class> + <name>label35</name> + <label>th day of the month</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> </widget> + </widget> + + <widget> + <class>GtkHBox</class> + <name>hbox18</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> <widget> - <class>GtkHBox</class> - <name>hbox18</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> + <class>GtkRadioButton</class> + <name>recurrence-rule-monthly-weekday</name> + <can_focus>True</can_focus> + <label>Recur on the</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <group>recurrence_rule_monthly_group</group> <child> <padding>0</padding> <expand>False</expand> <fill>False</fill> </child> + </widget> - <widget> - <class>GtkRadioButton</class> - <name>recurrence-rule-monthly-weekday</name> - <can_focus>True</can_focus> - <label>Recur on the</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_rule_monthly_group</group> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkOptionMenu</class> - <name>recurrence-rule-monthly-week</name> - <can_focus>True</can_focus> - <items>1st + <widget> + <class>GtkOptionMenu</class> + <name>recurrence-rule-monthly-week</name> + <can_focus>True</can_focus> + <items>1st 2nd 3rd 4th 5th </items> - <initial_choice>0</initial_choice> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkOptionMenu</class> - <name>recurrence-rule-monthly-day</name> - <can_focus>True</can_focus> - <items>Monday + <initial_choice>0</initial_choice> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + + <widget> + <class>GtkOptionMenu</class> + <name>recurrence-rule-monthly-day</name> + <can_focus>True</can_focus> + <items>Monday Tuesday Wednesday Thursday @@ -1482,243 +1421,24 @@ Friday Saturday Sunday </items> - <initial_choice>0</initial_choice> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <initial_choice>0</initial_choice> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> </widget> </widget> - - <widget> - <class>Placeholder</class> - </widget> </widget> <widget> - <class>GtkHBox</class> - <name>hbox19</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> - - <widget> - <class>GtkLabel</class> - <name>label36</name> - <label>Every</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkSpinButton</class> - <name>recurrence-rule-monthly-every-n-months</name> - <can_focus>True</can_focus> - <climb_rate>1</climb_rate> - <digits>0</digits> - <numeric>False</numeric> - <update_policy>GTK_UPDATE_ALWAYS</update_policy> - <snap>False</snap> - <wrap>False</wrap> - <value>1</value> - <lower>1</lower> - <upper>100</upper> - <step>1</step> - <page>10</page> - <page_size>10</page_size> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> - </widget> - - <widget> - <class>GtkLabel</class> - <name>label37</name> - <label>month(s)</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <class>Placeholder</class> </widget> </widget> <widget> - <class>GtkLabel</class> - <child_name>Notebook:tab</child_name> - <name>label26</name> - <label>label26</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - </widget> - - <widget> - <class>GtkVBox</class> - <name>vbox11</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - - <widget> - <class>GtkHBox</class> - <name>hbox20</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> - - <widget> - <class>GtkLabel</class> - <name>label38</name> - <label>Every </label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkSpinButton</class> - <name>recurrence-rule-yearly-every-n-years</name> - <can_focus>True</can_focus> - <climb_rate>1</climb_rate> - <digits>0</digits> - <numeric>False</numeric> - <update_policy>GTK_UPDATE_ALWAYS</update_policy> - <snap>False</snap> - <wrap>False</wrap> - <value>1</value> - <lower>0</lower> - <upper>100</upper> - <step>1</step> - <page>10</page> - <page_size>10</page_size> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> - </widget> - - <widget> - <class>GtkLabel</class> - <name>label39</name> - <label>year(s)</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - </widget> - </widget> - - <widget> - <class>GtkLabel</class> - <child_name>Notebook:tab</child_name> - <name>label27</name> - <label>label27</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - </widget> - </widget> - </widget> - </widget> - - <widget> - <class>GtkHBox</class> - <name>hbox8</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> - - <widget> - <class>GtkFrame</class> - <name>frame9</name> - <label>Ending date</label> - <label_xalign>0</label_xalign> - <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - </child> - - <widget> - <class>GtkVBox</class> - <name>vbox5</name> - <homogeneous>True</homogeneous> - <spacing>0</spacing> - - <widget> - <class>GtkRadioButton</class> - <name>recurrence-ending-date-repeat-forever</name> - <can_focus>True</can_focus> - <label>Repeat forever</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_ending_date</group> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> <class>GtkHBox</class> - <name>hbox12</name> + <name>hbox19</name> <homogeneous>False</homogeneous> <spacing>0</spacing> <child> @@ -1728,13 +1448,15 @@ Sunday </child> <widget> - <class>GtkRadioButton</class> - <name>recurrence-ending-date-end-on</name> - <can_focus>True</can_focus> - <label>End on </label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_ending_date</group> + <class>GtkLabel</class> + <name>label36</name> + <label>Every</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> <child> <padding>0</padding> <expand>False</expand> @@ -1743,40 +1465,87 @@ Sunday </widget> <widget> - <class>Custom</class> - <name>recurrence-ending-date-end-on-date</name> - <width>100</width> - <creation_function>make_date_edit</creation_function> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Sat, 13 May 2000 18:02:55 GMT</last_modification_time> + <class>GtkSpinButton</class> + <name>recurrence-rule-monthly-every-n-months</name> + <can_focus>True</can_focus> + <climb_rate>1</climb_rate> + <digits>0</digits> + <numeric>False</numeric> + <update_policy>GTK_UPDATE_ALWAYS</update_policy> + <snap>False</snap> + <wrap>False</wrap> + <value>1</value> + <lower>1</lower> + <upper>100</upper> + <step>1</step> + <page>10</page> + <page_size>10</page_size> <child> <padding>0</padding> <expand>False</expand> <fill>True</fill> </child> </widget> + + <widget> + <class>GtkLabel</class> + <name>label37</name> + <label>month(s)</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> </widget> + </widget> + + <widget> + <class>GtkLabel</class> + <child_name>Notebook:tab</child_name> + <name>label26</name> + <label>label26</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + </widget> + + <widget> + <class>GtkVBox</class> + <name>vbox11</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> <widget> <class>GtkHBox</class> - <name>hbox10</name> + <name>hbox20</name> <homogeneous>False</homogeneous> <spacing>0</spacing> <child> <padding>0</padding> - <expand>True</expand> + <expand>False</expand> <fill>True</fill> </child> <widget> - <class>GtkRadioButton</class> - <name>recurrence-ending-date-end-after</name> - <can_focus>True</can_focus> - <label>End after</label> - <active>False</active> - <draw_indicator>True</draw_indicator> - <group>recurrence_ending_date</group> + <class>GtkLabel</class> + <name>label38</name> + <label>Every </label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> <child> <padding>0</padding> <expand>False</expand> @@ -1786,7 +1555,7 @@ Sunday <widget> <class>GtkSpinButton</class> - <name>recurrence-ending-date-end-after-count</name> + <name>recurrence-rule-yearly-every-n-years</name> <can_focus>True</can_focus> <climb_rate>1</climb_rate> <digits>0</digits> @@ -1794,7 +1563,7 @@ Sunday <update_policy>GTK_UPDATE_ALWAYS</update_policy> <snap>False</snap> <wrap>False</wrap> - <value>2</value> + <value>1</value> <lower>0</lower> <upper>100</upper> <step>1</step> @@ -1809,8 +1578,8 @@ Sunday <widget> <class>GtkLabel</class> - <name>label28</name> - <label>occurrence(s)</label> + <name>label39</name> + <label>year(s)</label> <justify>GTK_JUSTIFY_CENTER</justify> <wrap>False</wrap> <xalign>0.5</xalign> @@ -1825,134 +1594,303 @@ Sunday </widget> </widget> </widget> + + <widget> + <class>GtkLabel</class> + <child_name>Notebook:tab</child_name> + <name>label27</name> + <label>label27</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + </widget> </widget> + </widget> + </widget> + + <widget> + <class>GtkHBox</class> + <name>hbox8</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkFrame</class> + <name>frame9</name> + <label>Ending date</label> + <label_xalign>0</label_xalign> + <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> <widget> - <class>GtkFrame</class> - <name>frame10</name> - <label>Exceptions</label> - <label_xalign>0</label_xalign> - <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> - <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <class>GtkVBox</class> + <name>vbox5</name> + <homogeneous>True</homogeneous> + <spacing>0</spacing> <widget> - <class>GtkVBox</class> - <name>vbox12</name> + <class>GtkRadioButton</class> + <name>recurrence-ending-date-repeat-forever</name> + <can_focus>True</can_focus> + <label>Repeat forever</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <group>recurrence_ending_date</group> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + + <widget> + <class>GtkHBox</class> + <name>hbox12</name> <homogeneous>False</homogeneous> <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkRadioButton</class> + <name>recurrence-ending-date-end-on</name> + <can_focus>True</can_focus> + <label>End on </label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <group>recurrence_ending_date</group> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> <widget> <class>Custom</class> - <name>recurrence-exceptions-date</name> + <name>recurrence-ending-date-end-on-date</name> + <width>100</width> <creation_function>make_date_edit</creation_function> <int1>0</int1> <int2>0</int2> - <last_modification_time>Tue, 16 May 2000 01:42:29 GMT</last_modification_time> + <last_modification_time>Sat, 13 May 2000 18:02:55 GMT</last_modification_time> <child> <padding>0</padding> - <expand>True</expand> + <expand>False</expand> <fill>True</fill> </child> </widget> + </widget> + + <widget> + <class>GtkHBox</class> + <name>hbox10</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkRadioButton</class> + <name>recurrence-ending-date-end-after</name> + <can_focus>True</can_focus> + <label>End after</label> + <active>False</active> + <draw_indicator>True</draw_indicator> + <group>recurrence_ending_date</group> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> <widget> - <class>GtkHBox</class> - <name>hbox21</name> + <class>GtkSpinButton</class> + <name>recurrence-ending-date-end-after-count</name> + <can_focus>True</can_focus> + <climb_rate>1</climb_rate> + <digits>0</digits> + <numeric>False</numeric> + <update_policy>GTK_UPDATE_ALWAYS</update_policy> + <snap>False</snap> + <wrap>False</wrap> + <value>2</value> + <lower>0</lower> + <upper>100</upper> + <step>1</step> + <page>10</page> + <page_size>10</page_size> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>True</fill> + </child> + </widget> + + <widget> + <class>GtkLabel</class> + <name>label28</name> + <label>occurrence(s)</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> + </widget> + </widget> + </widget> + </widget> + + <widget> + <class>GtkFrame</class> + <name>frame10</name> + <label>Exceptions</label> + <label_xalign>0</label_xalign> + <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkVBox</class> + <name>vbox12</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + + <widget> + <class>Custom</class> + <name>recurrence-exceptions-date</name> + <creation_function>make_date_edit</creation_function> + <int1>0</int1> + <int2>0</int2> + <last_modification_time>Tue, 16 May 2000 01:42:29 GMT</last_modification_time> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + </widget> + + <widget> + <class>GtkHBox</class> + <name>hbox21</name> + <homogeneous>False</homogeneous> + <spacing>0</spacing> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> + + <widget> + <class>GtkVBox</class> + <name>vbox13</name> <homogeneous>False</homogeneous> <spacing>0</spacing> <child> <padding>0</padding> - <expand>True</expand> + <expand>False</expand> <fill>True</fill> </child> <widget> - <class>GtkVBox</class> - <name>vbox13</name> - <homogeneous>False</homogeneous> - <spacing>0</spacing> + <class>GtkButton</class> + <name>recurrence-exceptions-add</name> + <can_focus>True</can_focus> + <label>Add</label> <child> <padding>0</padding> <expand>False</expand> - <fill>True</fill> + <fill>False</fill> </child> + </widget> - <widget> - <class>GtkButton</class> - <name>recurrence-exceptions-add</name> - <can_focus>True</can_focus> - <label>Add</label> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkButton</class> - <name>recurrence-exceptions-change</name> - <can_focus>True</can_focus> - <label>Chage</label> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> - - <widget> - <class>GtkButton</class> - <name>recurrence-exceptions-delete</name> - <can_focus>True</can_focus> - <label>Delete</label> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>False</fill> - </child> - </widget> + <widget> + <class>GtkButton</class> + <name>recurrence-exceptions-change</name> + <can_focus>True</can_focus> + <label>Chage</label> + <child> + <padding>0</padding> + <expand>False</expand> + <fill>False</fill> + </child> </widget> <widget> - <class>GtkScrolledWindow</class> - <name>scrolledwindow2</name> - <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy> - <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy> - <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> - <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> + <class>GtkButton</class> + <name>recurrence-exceptions-delete</name> + <can_focus>True</can_focus> + <label>Delete</label> <child> <padding>0</padding> - <expand>True</expand> - <fill>True</fill> + <expand>False</expand> + <fill>False</fill> </child> + </widget> + </widget> - <widget> - <class>GtkCList</class> - <name>recurrence-exceptions-list</name> - <can_focus>True</can_focus> - <columns>1</columns> - <column_widths>80</column_widths> - <selection_mode>GTK_SELECTION_SINGLE</selection_mode> - <show_titles>False</show_titles> - <shadow_type>GTK_SHADOW_IN</shadow_type> + <widget> + <class>GtkScrolledWindow</class> + <name>scrolledwindow2</name> + <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy> + <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy> + <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> + <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> + <child> + <padding>0</padding> + <expand>True</expand> + <fill>True</fill> + </child> - <widget> - <class>GtkLabel</class> - <child_name>CList:title</child_name> - <name>label40</name> - <label></label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - </widget> + <widget> + <class>GtkCList</class> + <name>recurrence-exceptions-list</name> + <can_focus>True</can_focus> + <columns>1</columns> + <column_widths>80</column_widths> + <selection_mode>GTK_SELECTION_SINGLE</selection_mode> + <show_titles>False</show_titles> + <shadow_type>GTK_SHADOW_IN</shadow_type> + + <widget> + <class>GtkLabel</class> + <child_name>CList:title</child_name> + <name>label40</name> + <label></label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> </widget> </widget> </widget> @@ -1960,19 +1898,19 @@ Sunday </widget> </widget> </widget> + </widget> - <widget> - <class>GtkLabel</class> - <child_name>Notebook:tab</child_name> - <name>label12</name> - <label>Recurrence</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0.5</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - </widget> + <widget> + <class>GtkLabel</class> + <child_name>Notebook:tab</child_name> + <name>label12</name> + <label>Recurrence</label> + <justify>GTK_JUSTIFY_CENTER</justify> + <wrap>False</wrap> + <xalign>0.5</xalign> + <yalign>0.5</yalign> + <xpad>0</xpad> + <ypad>0</ypad> </widget> </widget> </widget> diff --git a/calendar/gui/event-editor.c b/calendar/gui/event-editor.c index a25028c456..c96a6118d6 100644 --- a/calendar/gui/event-editor.c +++ b/calendar/gui/event-editor.c @@ -1,10 +1,81 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* Evolution calendar - Event editor dialog + * + * Copyright (C) 2000 Helix Code, Inc. + * + * Authors: Miguel de Icaza <miguel@helixcode.com> + * Federico Mena-Quintero <federico@helixcode.com> + * Seth Alves <alves@helixcode.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ #include <config.h> #include <gnome.h> #include <cal-util/timeutil.h> -#include <gui/event-editor-utils.h> -#include <gui/event-editor.h> +#include "event-editor-utils.h" +#include "event-editor.h" + + + +typedef struct { + /* Glade XML data */ + GladeXML *xml; + + /* Calendar this editor is associated to */ + GnomeCalendar *gcal; + + /* UI handler */ + BonoboUIHandler *uih; + + /* Widgets from the Glade file */ + + GtkWidget *general_owner; + + GtkWidget *start_time; + GtkWidget *end_time; + GtkWidget *all_day_checkbox; + + GtkWidget *alarm_display; + GtkWidget *alarm_program; + GtkWidget *alarm_audio; + GtkWidget *alarm_mail; + GtkWidget *alarm_display_amount; + GtkWidget *alarm_display_unit; + GtkWidget *alarm_audio_amount; + GtkWidget *alarm_audio_unit; + GtkWidget *alarm_program_amount; + GtkWidget *alarm_program_unit; + GtkWidget *alarm_program_run_program; + GtkWidget *alarm_mail_amount; + GtkWidget *alarm_mail_unit; + GtkWidget *alarm_mail_mail_to; + + GtkWidget *recurrence_rule_notebook; + GtkWidget *recurrence_rule_none; + GtkWidget *recurrence_rule_daily; + GtkWidget *recurrence_rule_weekly; + GtkWidget *recurrence_rule_monthly; + GtkWidget *recurrence_rule_yearly; + + GtkWidget *recurrence_exception_add; + GtkWidget *recurrence_exception_delete; + GtkWidget *recurrence_exception_change; + + GtkWidget *exception_list; + GtkWidget *exception_date; +} EventEditorPrivate; typedef struct { GladeXML *gui; @@ -13,6 +84,13 @@ typedef struct { iCalObject *ical; } EventEditorDialog; + + +static void event_editor_class_init (EventEditorClass *class); +static void event_editor_init (EventEditor *ee); +static void event_editor_destroy (GtkObject *object); + +static GnomeAppClass *parent_class; extern int day_begin, day_end; extern char *user_name; @@ -24,6 +102,324 @@ static void append_exception (EventEditorDialog *dialog, time_t t); static void check_all_day (EventEditorDialog *dialog); static void alarm_toggle (GtkToggleButton *toggle, EventEditorDialog *dialog); + + +/** + * event_editor_get_type: + * @void: + * + * Registers the #EventEditor class if necessary, and returns the type ID + * associated to it. + * + * Return value: The type ID of the #EventEditor class. + **/ +GtkType +event_editor_get_type (void) +{ + static GtkType event_editor_type = 0; + + if (!event_editor_type) { + static const GtkTypeInfo event_editor_info = { + "EventEditor", + sizeof (EventEditor), + sizeof (EventEditorClass), + (GtkClassInitFunc) event_editor_class_init, + (GtkObjectInitFunc) event_editor_init, + NULL, /* reserved_1 */ + NULL, /* reserved_2 */ + (GtkClassInitFunc) NULL + }; + + event_editor_type = gtk_type_unique (gnome_app_get_type (), &event_editor_info); + } + + return event_editor_type; +} + +/* Class initialization function for the event editor */ +static void +event_editor_class_init (EventEditorClass *class) +{ + GtkObjectClass *object_class; + + object_class = (GtkObjectClass *) class; + + parent_class = gtk_type_class (gnome_app_get_type ()); + + object_class->destroy = event_editor_destroy; +} + +/* Object initialization function for the event editor */ +static void +event_editor_init (EventEditor *ee) +{ + EventEditorPrivate *priv; + + priv = g_new0 (EventEditorPrivate, 1); + ee->priv = priv; +} + +/* Destroy handler for the event editor */ +static void +event_editor_destroy (GtkObject *object) +{ + EventEditor *ee; + EventEditorPrivate *priv; + + g_return_if_fail (object != NULL); + g_return_if_fail (IS_EVENT_EDITOR (object)); + + ee = EVENT_EDITOR (object); + priv = ee->priv; + + if (priv->xml) { + gtk_object_unref (GTK_OBJECT (priv->xml)); + priv->xml = NULL; + } + + if (GTK_OBJECT_CLASS (parent_class)->destroy) + (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); +} + +/* Creates an appropriate title for the event editor dialog */ +static char * +make_title_from_ico (iCalObject *ico) +{ + const char *summary; + + if (ico->summary) + summary = ico->summary; + else + summary = _("No summary"); + + switch (ico->type) { + case ICAL_EVENT: + return g_strdup_printf (_("Appointment - %s"), summary); + + case ICAL_TODO: + return g_strdup_printf (_("Task - %s"), summary); + + case ICAL_JOURNAL: + return g_strdup_printf (_("Journal entry - %s"), summary); + + default: + g_message ("make_title_from_ico(): Cannot handle object of type %d", (int) ico->type); + return NULL; + } +} + +/* Gets the widgets from the XML file and returns if they are all available */ +static gboolean +get_widgets (EventEditor *ee) +{ + EventEditorPrivate *priv; + + priv = ee->priv; + +#define GW(name) glade_xml_get_widget (priv->xml, name) + + priv->general_owner = GW ("general-owner"); + + priv->start_time = GW ("start-time"); + priv->end_time = GW ("end-time"); + priv->all_day_checkbox = GW ("all-day-event"); + + priv->alarm_display = GW ("alarm-display"); + priv->alarm_program = GW ("alarm-program"); + priv->alarm_audio = GW ("alarm-audio"); + priv->alarm_mail = GW ("alarm-mail"); + priv->alarm_display_amount = GW ("alarm-display-amount"); + priv->alarm_display_unit = GW ("alarm-display-unit"); + priv->alarm_audio_amount = GW ("alarm-audio-amount"); + priv->alarm_audio_unit = GW ("alarm-audio-unit"); + priv->alarm_program_amount = GW ("alarm-program-amount"); + priv->alarm_program_unit = GW ("alarm-program-unit"); + priv->alarm_program_run_program = GW ("run-program-file-entry"); + priv->alarm_mail_amount = GW ("alarm-mail-amount"); + priv->alarm_mail_unit = GW ("alarm-mail-unit"); + priv->alarm_mail_mail_to = GW ("mail-to"); + + priv->recurrence_rule_notebook = GW ("recurrence-rule-notebook"); + priv->recurrence_rule_none = GW ("recurrence-rule-none"); + priv->recurrence_rule_daily = GW ("recurrence-rule-daily"); + priv->recurrence_rule_weekly = GW ("recurrence-rule-weekly"); + priv->recurrence_rule_monthly = GW ("recurrence-rule-monthly"); + priv->recurrence_rule_yearly = GW ("recurrence-rule-yearly"); + + priv->recurrence_exception_add = GW ("recurrence-exceptions-add"); + priv->recurrence_exception_delete = GW ("recurrence-exceptions-delete"); + priv->recurrence_exception_change = GW ("recurrence-exceptions-change"); + + priv->exception_list = GW ("recurrence-exceptions-list"); + priv->exception_date = GW ("recurrence-exceptions-date"); + +#undef GW + + return (priv->general_owner + && priv->start_time + && priv->end_time + && priv->all_day_checkbox + && priv->alarm_display + && priv->alarm_program + && priv->alarm_audio + && priv->alarm_mail + && priv->alarm_display_amount + && priv->alarm_display_unit + && priv->alarm_audio_amount + && priv->alarm_audio_unit + && priv->alarm_program_amount + && priv->alarm_program_unit + && priv->alarm_program_run_program + && priv->alarm_mail_amount + && priv->alarm_mail_unit + && priv->alarm_mail_mail_to + && priv->recurrence_rule_notebook + && priv->recurrence_rule_none + && priv->recurrence_rule_daily + && priv->recurrence_rule_weekly + && priv->recurrence_rule_monthly + && priv->recurrence_rule_yearly + && priv->recurrence_exception_add + && priv->recurrence_exception_delete + && priv->recurrence_exception_change + && priv->exception_list + && priv->exception_date); +} + +static GnomeUIInfo main_menu[] = { + /* FIXME */ + GNOMEUIINFO_END +}; + +/* Creates the menu bar for the event editor */ +static void +create_menu (EventEditor *ee) +{ + EventEditorPrivate *priv; + BonoboUIHandlerMenuItem *list; + + priv = ee->priv; + + bonobo_ui_handler_create_menubar (priv->uih); + + list = bonobo_ui_handler_menu_parse_uiinfo_list_with_data (main_menu, ee); + bonobo_ui_handler_menu_add_list (priv->uih, "/", list); +} + +static GnomeUIInfo toolbar[] = { + /* FIXME */ + GNOMEUIINFO_END +}; + +/* Creates the toolbar for the event editor */ +static void +create_toolbar (EventEditor *ee) +{ + EventEditorPrivate *priv; + BonoboUIHandlerToolbarItem *list; + + priv = ee->priv; + + bonobo_ui_handler_create_toolbar (priv->uih, "Toolbar"); + + list = bonobo_ui_handler_toolbar_parse_uiinfo_list_with_data (toolbar, ee); + bonobo_ui_handler_toolbar_add_list (priv->uih, "/Toolbar", list); +} + +GtkWidget * +event_editor_construct (EventEditor *ee, GnomeCalendar *gcal, iCalObject *ico) +{ + EventEditorPrivate *priv; + char *title; + GtkWidget *toplevel; + GtkWidget *contents; + + g_return_val_if_fail (ee != NULL, NULL); + g_return_val_if_fail (IS_EVENT_EDITOR (ee), NULL); + g_return_val_if_fail (gcal != NULL, NULL); + g_return_val_if_fail (GNOME_IS_CALENDAR (gcal), NULL); + g_return_val_if_fail (ico != NULL, NULL); + g_return_val_if_fail (ico->uid != NULL, NULL); + + priv = ee->priv; + + /* Create the UI handler */ + + priv->uih = bonobo_ui_handler_new (); + if (!priv->uih) { + g_message ("event_editor_construct(): Could not create the UI handler"); + goto error; + } + + bonobo_ui_handler_set_app (priv->uih, GNOME_APP (ee)); + + /* Load the content widgets */ + + priv->xml = glade_xml_new (EVOLUTION_GLADEDIR "/event-editor-dialog.glade", NULL); + if (!priv->xml) { + g_message ("event_editor_construct(): Could not load the Glade XML file!"); + goto error; + } + + toplevel = glade_xml_get_widget (priv->xml, "event-editor-dialog"); + contents = glade_xml_get_widget (priv->xml, "dialog-contents"); + if (!(toplevel && contents)) { + g_message ("event_editor_construct(): Could not find the contents in the XML file!"); + goto error; + } + + if (!get_widgets (ee)) { + g_message ("event_editor_construct(): Could not find all widgets in the XML file!"); + goto error; + } + + gtk_object_ref (GTK_OBJECT (contents)); + gtk_container_remove (GTK_CONTAINER (toplevel), GTK_WIDGET (contents)); + gtk_widget_destroy (GTK_WIDGET (toplevel)); + + /* Construct the app */ + + priv->gcal = gcal; + + title = make_title_from_ico (ico); + gnome_app_construct (GNOME_APP (ee), "event-editor", title); + g_free (title); + + create_menu (ee); + create_toolbar (ee); + + gnome_app_set_contents (GNOME_APP (ee), contents); + gtk_widget_show (contents); + gtk_object_unref (GTK_OBJECT (contents)); + + return GTK_WIDGET (ee); + + error: + + gtk_object_unref (GTK_OBJECT (ee)); + return NULL; +} + +GtkWidget * +event_editor_new (GnomeCalendar *gcal, iCalObject *ico) +{ + EventEditor *ee; + + g_return_val_if_fail (gcal != NULL, NULL); + g_return_val_if_fail (GNOME_IS_CALENDAR (gcal), NULL); + g_return_val_if_fail (ico != NULL, NULL); + g_return_val_if_fail (ico->uid != NULL, NULL); + + ee = EVENT_EDITOR (gtk_type_new (TYPE_EVENT_EDITOR)); + + ee = event_editor_construct (ee, gcal, ico); + + if (ee) + gtk_widget_show (GTK_WIDGET (ee)); + + return GTK_WIDGET (ee); +} + static void fill_in_dialog_from_ical (EventEditorDialog *dialog) { @@ -628,7 +1024,7 @@ recurrence_exception_changed (GtkWidget *widget, EventEditorDialog *dialog) } - +#if 0 GtkWidget *event_editor_new (GnomeCalendar *gcal, iCalObject *ical) { EventEditorDialog *dialog = g_new0 (EventEditorDialog, 1); @@ -722,7 +1118,7 @@ GtkWidget *event_editor_new (GnomeCalendar *gcal, iCalObject *ical) return dialog->dialog; } - +#endif void event_editor_new_whole_day (GnomeCalendar *owner, time_t day) { @@ -810,4 +1206,3 @@ make_spin_button (int val, int low, int high) Gtk-WARNING **: invalid cast from `(unknown)' to `GnomeDialog' on line 669: gnome_dialog_close (GNOME_DIALOG(dialog->dialog)); */ - diff --git a/calendar/gui/event-editor.h b/calendar/gui/event-editor.h index 05de9aad38..00646afd75 100644 --- a/calendar/gui/event-editor.h +++ b/calendar/gui/event-editor.h @@ -1,13 +1,50 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* Evolution calendar - Event editor dialog + * + * Copyright (C) 2000 Helix Code, Inc. + * + * Authors: Miguel de Icaza <miguel@helixcode.com> + * Federico Mena-Quintero <federico@helixcode.com> + * Seth Alves <alves@helixcode.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ #ifndef __EVENT_EDITOR_DIALOG_H__ #define __EVENT_EDITOR_DIALOG_H__ +#include <libgnome/gnome-defs.h> +#include <libgnomeui/gnome-app.h> #include "gnome-cal.h" -#include <glade/glade.h> -#include <libgnomeui/gnome-dialog.h> -typedef struct { + + +#define TYPE_EVENT_EDITOR (event_editor_get_type ()) +#define EVENT_EDITOR(obj) (GTK_CHECK_CAST ((obj), TYPE_EVENT_EDITOR, EventEditor)) +#define EVENT_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), TYPE_EVENT_EDITOR, \ + EventEditorClass)) +#define IS_EVENT_EDITOR(obj) (GTK_CHECK_TYPE ((obj), TYPE_EVENT_EDITOR)) +#define IS_EVENT_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_EDITOR)) + +typedef struct _EventEditor EventEditor; +typedef struct _EventEditorClass EventEditorClass; + +struct _EventEditor { + GnomeApp app; + + /* Private data */ + gpointer priv; /* The associated ical object */ iCalObject *ical; @@ -21,10 +58,17 @@ typedef struct { int port; char *rootdn; */ -} EventEditor; +}; + +struct _EventEditorClass { + GnomeAppClass parent_class; +}; -GtkWidget *event_editor_new (GnomeCalendar *owner, iCalObject *ico); +GtkType event_editor_get_type (void); +GtkWidget *event_editor_construct (EventEditor *ee, GnomeCalendar *gcal, iCalObject *ico); + +GtkWidget *event_editor_new (GnomeCalendar *gcal, iCalObject *ico); /* Convenience function to create and show a new event editor for an * event that goes from day_begin to day_end of the specified day. @@ -37,6 +81,6 @@ GtkWidget *date_edit_new (time_t the_time, int show_time); GtkWidget *make_spin_button (int val, int low, int high); - + #endif /* __EVENT_EDITOR_DIALOG_H__ */ |