[Debian-hebrew-package] r745 - in /pkg/hdate-applet/trunk/src: ./ interface.c

kaplan at users.alioth.debian.org kaplan at users.alioth.debian.org
Sat Mar 22 12:07:23 UTC 2008


Author: kaplan
Date: Sat Mar 22 12:07:22 2008
New Revision: 745

URL: http://svn.debian.org/wsvn/debian-hebrew/?sc=1&rev=745
Log:
Import interface.c from orig.tar.gz

Added:
    pkg/hdate-applet/trunk/src/
    pkg/hdate-applet/trunk/src/interface.c

Added: pkg/hdate-applet/trunk/src/interface.c
URL: http://svn.debian.org/wsvn/debian-hebrew/pkg/hdate-applet/trunk/src/interface.c?rev=745&op=file
==============================================================================
--- pkg/hdate-applet/trunk/src/interface.c (added)
+++ pkg/hdate-applet/trunk/src/interface.c Sat Mar 22 12:07:22 2008
@@ -1,0 +1,516 @@
+/*  hdate_applet - Hebrew calendar GNOME panel applet
+ *
+ *  Copyright (C) 2004-2008  Yaacov Zamir <kzamir at walla.co.il>
+ *  
+ *  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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gnome.h>
+#include <locale.h>
+#include <hdate.h>
+
+#include "hdate_applet.h"
+#include "interface.h"
+#include "callbacks.h"
+
+#include "../config.h"
+
+#undef _
+#define _(String) dgettext (GETTEXT_PACKAGE, String)
+
+GtkWidget *
+create_window_prop (HdateData * cd)
+{
+	gchar text[500];
+
+	GtkWidget *window_prop;
+	GtkWidget *vbox_prop;
+	GtkWidget *notebook_prp;
+	GtkWidget *vbox1;
+	GtkWidget *checkbutton_show_moon;
+	GtkWidget *checkbutton_show_heb;
+	GtkWidget *checkbutton_show_gen;
+	GtkWidget *checkbutton_show_gen_long;
+	GtkWidget *checkbutton_show_set;
+	GtkWidget *checkbutton_show_parasha;
+	GtkWidget *checkbutton_diaspora;
+	GtkWidget *hbox_he_locale;
+	GtkWidget *checkbutton_heb;
+	GtkWidget *entry_heb_locale;
+	GtkWidget *label_form;
+	GtkWidget *vbox2;
+	GtkWidget *label_theme;
+	GtkWidget *combo1;
+	GList *combo1_items = NULL;
+	GtkWidget *combo_entry_theme;
+	GtkWidget *label_imag;
+	GtkWidget *table1;
+	GtkWidget *label6;
+	GtkWidget *label7;
+	GtkWidget *label8;
+	GtkWidget *checkbutton_summer;
+	GtkWidget *entry_lat;
+	GtkWidget *entry_long;
+	GtkWidget *entry_tz;
+	GtkWidget *label_loc;
+	GtkWidget *button_ok;
+
+	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+
+	window_prop = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+	gtk_window_set_title (GTK_WINDOW (window_prop),
+			      _("Hdate applet properties"));
+
+	vbox_prop = gtk_vbox_new (FALSE, 0);
+	gtk_widget_show (vbox_prop);
+	gtk_container_add (GTK_CONTAINER (window_prop), vbox_prop);
+
+	notebook_prp = gtk_notebook_new ();
+	gtk_widget_show (notebook_prp);
+	gtk_box_pack_start (GTK_BOX (vbox_prop), notebook_prp, TRUE, TRUE, 0);
+
+	vbox1 = gtk_vbox_new (FALSE, 0);
+	gtk_widget_show (vbox1);
+	gtk_container_add (GTK_CONTAINER (notebook_prp), vbox1);
+
+	checkbutton_show_moon =
+		gtk_check_button_new_with_mnemonic (_("Show moon image"));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+				      (checkbutton_show_moon), cd->showmoon);
+
+	gtk_widget_show (checkbutton_show_moon);
+	gtk_box_pack_start (GTK_BOX (vbox1), checkbutton_show_moon, FALSE,
+			    FALSE, 0);
+
+	checkbutton_show_heb =
+		gtk_check_button_new_with_mnemonic (_("Show hebrew date"));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+				      (checkbutton_show_heb), cd->showhebrew);
+
+	gtk_widget_show (checkbutton_show_heb);
+	gtk_box_pack_start (GTK_BOX (vbox1), checkbutton_show_heb, FALSE,
+			    FALSE, 0);
+
+	checkbutton_show_gen =
+		gtk_check_button_new_with_mnemonic (_
+						    ("Show Greg. date (in tooltip)"));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+				      (checkbutton_show_gen),
+				      cd->showgeneral);
+
+	gtk_widget_show (checkbutton_show_gen);
+	gtk_box_pack_start (GTK_BOX (vbox1), checkbutton_show_gen, FALSE,
+			    FALSE, 0);
+
+	checkbutton_show_gen_long =
+		gtk_check_button_new_with_mnemonic (_
+						    ("Show the Greg. date using long format (in tooltip)"));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+				      (checkbutton_show_gen_long),
+				      cd->showgeneral_long);
+
+	gtk_widget_show (checkbutton_show_gen_long);
+	gtk_box_pack_start (GTK_BOX (vbox1), checkbutton_show_gen_long, FALSE,
+			    FALSE, 0);
+
+	checkbutton_show_set =
+		gtk_check_button_new_with_mnemonic (_
+						    ("Show sunset/rise time (in tooltip)"));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+				      (checkbutton_show_set), cd->showsunset);
+
+	gtk_widget_show (checkbutton_show_set);
+	gtk_box_pack_start (GTK_BOX (vbox1), checkbutton_show_set, FALSE,
+			    FALSE, 0);
+
+	hbox_he_locale = gtk_hbox_new (FALSE, 0);
+	gtk_widget_show (hbox_he_locale);
+	gtk_container_add (GTK_CONTAINER (vbox1), hbox_he_locale);
+
+	checkbutton_heb =
+		gtk_check_button_new_with_mnemonic (_("Use locale (hebrew)"));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton_heb),
+				      cd->use_hebrew_locale);
+
+	gtk_widget_show (checkbutton_heb);
+	gtk_box_pack_start (GTK_BOX (hbox_he_locale), checkbutton_heb, FALSE,
+			    FALSE, 0);
+
+	entry_heb_locale = gtk_entry_new ();
+	gtk_widget_show (entry_heb_locale);
+	gtk_box_pack_start (GTK_BOX (hbox_he_locale), entry_heb_locale, TRUE,
+			    FALSE, 0);
+	g_snprintf (text, 50, "%s", cd->he_locale);
+	gtk_entry_set_text (GTK_ENTRY (entry_heb_locale), text);
+
+	checkbutton_show_parasha =
+		gtk_check_button_new_with_mnemonic (_("Show parasha"));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+				      (checkbutton_show_parasha),
+				      cd->showparasha);
+
+	gtk_widget_show (checkbutton_show_parasha);
+	gtk_box_pack_start (GTK_BOX (vbox1), checkbutton_show_parasha, FALSE,
+			    FALSE, 0);
+
+	checkbutton_diaspora =
+		gtk_check_button_new_with_mnemonic (_
+						    ("Use diaspra holidays and parashot"));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+				      (checkbutton_diaspora),
+				      cd->use_diaspora);
+
+	gtk_widget_show (checkbutton_diaspora);
+	gtk_box_pack_start (GTK_BOX (vbox1), checkbutton_diaspora, FALSE,
+			    FALSE, 0);
+
+	label_form = gtk_label_new (_("Label format"));
+	gtk_widget_show (label_form);
+	gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook_prp),
+				    gtk_notebook_get_nth_page (GTK_NOTEBOOK
+							       (notebook_prp),
+							       0),
+				    label_form);
+	gtk_label_set_justify (GTK_LABEL (label_form), GTK_JUSTIFY_LEFT);
+
+	vbox2 = gtk_vbox_new (FALSE, 0);
+	gtk_widget_show (vbox2);
+	gtk_container_add (GTK_CONTAINER (notebook_prp), vbox2);
+
+	label_theme = gtk_label_new (_("Use Theme:"));
+	gtk_widget_show (label_theme);
+	gtk_box_pack_start (GTK_BOX (vbox2), label_theme, FALSE, FALSE, 0);
+	gtk_label_set_justify (GTK_LABEL (label_theme), GTK_JUSTIFY_LEFT);
+
+	combo1 = gtk_combo_new ();
+	gtk_object_set_data (GTK_OBJECT (GTK_COMBO (combo1)->popwin),
+			     "GladeParentKey", combo1);
+	gtk_widget_show (combo1);
+	gtk_box_pack_start (GTK_BOX (vbox2), combo1, FALSE, FALSE, 0);
+	gtk_combo_set_value_in_list (GTK_COMBO (combo1), TRUE, FALSE);
+	gtk_combo_set_use_arrows_always (GTK_COMBO (combo1), TRUE);
+	combo1_items = g_list_append (combo1_items, (gpointer) ("yellow"));
+	combo1_items = g_list_append (combo1_items, (gpointer) ("gray"));
+
+	gtk_combo_set_popdown_strings (GTK_COMBO (combo1), combo1_items);
+	g_list_free (combo1_items);
+
+	combo_entry_theme = GTK_COMBO (combo1)->entry;
+	gtk_entry_set_text (GTK_ENTRY (combo_entry_theme), cd->theme);
+
+	gtk_widget_show (combo_entry_theme);
+	gtk_entry_set_editable (GTK_ENTRY (combo_entry_theme), FALSE);
+
+	label_imag = gtk_label_new (_("Image theme"));
+	gtk_widget_show (label_imag);
+	gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook_prp),
+				    gtk_notebook_get_nth_page (GTK_NOTEBOOK
+							       (notebook_prp),
+							       1),
+				    label_imag);
+	gtk_label_set_justify (GTK_LABEL (label_imag), GTK_JUSTIFY_LEFT);
+
+	table1 = gtk_table_new (5, 2, FALSE);
+	gtk_widget_show (table1);
+	gtk_container_add (GTK_CONTAINER (notebook_prp), table1);
+
+	label6 = gtk_label_new (_("Latitude (decimal degrees):"));
+	gtk_widget_show (label6);
+	gtk_table_attach (GTK_TABLE (table1), label6, 0, 1, 0, 1,
+			  (GtkAttachOptions) (GTK_FILL),
+			  (GtkAttachOptions) (0), 0, 0);
+	gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT);
+	gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5);
+
+	label7 = gtk_label_new (_("Longitude (decimal degrees):"));
+	gtk_widget_show (label7);
+	gtk_table_attach (GTK_TABLE (table1), label7, 0, 1, 1, 2,
+			  (GtkAttachOptions) (GTK_FILL),
+			  (GtkAttachOptions) (0), 0, 0);
+	gtk_label_set_justify (GTK_LABEL (label7), GTK_JUSTIFY_LEFT);
+	gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5);
+
+	label8 = gtk_label_new (_("Time zone:"));
+	gtk_widget_show (label8);
+	gtk_table_attach (GTK_TABLE (table1), label8, 0, 1, 2, 3,
+			  (GtkAttachOptions) (GTK_FILL),
+			  (GtkAttachOptions) (0), 0, 0);
+	gtk_label_set_justify (GTK_LABEL (label8), GTK_JUSTIFY_LEFT);
+	gtk_label_set_line_wrap (GTK_LABEL (label8), TRUE);
+	gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5);
+
+	checkbutton_summer =
+		gtk_check_button_new_with_mnemonic (_
+						    ("Use summenr clock (+one hour)"));
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton_summer),
+				      cd->summer_clock);
+
+	gtk_widget_show (checkbutton_summer);
+	gtk_table_attach (GTK_TABLE (table1), checkbutton_summer, 0, 1, 3, 4,
+			  (GtkAttachOptions) (GTK_FILL),
+			  (GtkAttachOptions) (0), 0, 0);
+
+	entry_lat = gtk_entry_new ();
+	gtk_widget_show (entry_lat);
+	gtk_table_attach (GTK_TABLE (table1), entry_lat, 1, 2, 0, 1,
+			  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+			  (GtkAttachOptions) (0), 0, 0);
+	g_snprintf (text, 50, "%.2f", cd->latitude);
+	gtk_entry_set_text (GTK_ENTRY (entry_lat), text);
+
+	entry_long = gtk_entry_new ();
+	gtk_widget_show (entry_long);
+	gtk_table_attach (GTK_TABLE (table1), entry_long, 1, 2, 1, 2,
+			  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+			  (GtkAttachOptions) (0), 0, 0);
+	g_snprintf (text, 50, "%.2f", cd->longitude);
+	gtk_entry_set_text (GTK_ENTRY (entry_long), text);
+
+	entry_tz = gtk_entry_new ();
+	gtk_widget_show (entry_tz);
+	gtk_table_attach (GTK_TABLE (table1), entry_tz, 1, 2, 2, 3,
+			  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+			  (GtkAttachOptions) (0), 0, 0);
+	g_snprintf (text, 50, "%.2f", cd->time_zone);
+	gtk_entry_set_text (GTK_ENTRY (entry_tz), text);
+
+	label_loc = gtk_label_new (_("Location"));
+	gtk_widget_show (label_loc);
+	gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook_prp),
+				    gtk_notebook_get_nth_page (GTK_NOTEBOOK
+							       (notebook_prp),
+							       2), label_loc);
+	gtk_label_set_justify (GTK_LABEL (label_loc), GTK_JUSTIFY_LEFT);
+
+	button_ok = gtk_button_new_from_stock ("gtk-ok");
+	gtk_widget_show (button_ok);
+	gtk_box_pack_start (GTK_BOX (vbox_prop), button_ok, TRUE, TRUE, 0);
+
+	gtk_signal_connect (GTK_OBJECT (window_prop), "delete_event",
+			    GTK_SIGNAL_FUNC (on_window_prop_delete_event),
+			    cd);
+	gtk_signal_connect (GTK_OBJECT (checkbutton_show_moon), "toggled",
+			    GTK_SIGNAL_FUNC
+			    (on_checkbutton_show_moon_toggled), cd);
+	gtk_signal_connect (GTK_OBJECT (checkbutton_show_heb), "toggled",
+			    GTK_SIGNAL_FUNC (on_checkbutton_show_heb_toggled),
+			    cd);
+	gtk_signal_connect (GTK_OBJECT (entry_heb_locale), "changed",
+			    GTK_SIGNAL_FUNC (on_entry_heb_locale_changed),
+			    cd);
+	gtk_signal_connect (GTK_OBJECT (checkbutton_show_gen), "toggled",
+			    GTK_SIGNAL_FUNC (on_checkbutton_show_gen_toggled),
+			    cd);
+	gtk_signal_connect (GTK_OBJECT (checkbutton_show_gen_long), "toggled",
+			    GTK_SIGNAL_FUNC
+			    (on_checkbutton_show_gen_long_toggled), cd);
+	gtk_signal_connect (GTK_OBJECT (checkbutton_show_set), "toggled",
+			    GTK_SIGNAL_FUNC (on_checkbutton_show_set_toggled),
+			    cd);
+	gtk_signal_connect (GTK_OBJECT (checkbutton_show_parasha), "toggled",
+			    GTK_SIGNAL_FUNC
+			    (on_checkbutton_show_parasha_toggled), cd);
+	gtk_signal_connect (GTK_OBJECT (checkbutton_heb), "toggled",
+			    GTK_SIGNAL_FUNC (on_checkbutton_heb_toggled), cd);
+	gtk_signal_connect (GTK_OBJECT (checkbutton_diaspora), "toggled",
+			    GTK_SIGNAL_FUNC (on_checkbutton_diaspora_toggled),
+			    cd);
+	gtk_signal_connect (GTK_OBJECT (checkbutton_summer), "toggled",
+			    GTK_SIGNAL_FUNC (on_checkbutton_summer_toggled),
+			    cd);
+	gtk_signal_connect (GTK_OBJECT (combo_entry_theme), "changed",
+			    GTK_SIGNAL_FUNC (on_combo_entry_theme_changed),
+			    cd);
+	gtk_signal_connect (GTK_OBJECT (entry_lat), "changed",
+			    GTK_SIGNAL_FUNC (on_entry_lat_changed), cd);
+	gtk_signal_connect (GTK_OBJECT (entry_long), "changed",
+			    GTK_SIGNAL_FUNC (on_entry_long_changed), cd);
+	gtk_signal_connect (GTK_OBJECT (entry_tz), "changed",
+			    GTK_SIGNAL_FUNC (on_entry_tz_changed), cd);
+	gtk_signal_connect (GTK_OBJECT (button_ok), "clicked",
+			    GTK_SIGNAL_FUNC (on_button_ok_clicked), cd);
+	return window_prop;
+}
+
+GtkWidget *
+create_about_hdate (void)
+{
+	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+
+	static const gchar *authors[] =
+	{
+		"Yaacov Zamir <kzamir at walla.co.il>",
+		NULL
+	};
+	static const char *documenters[] =
+	{
+		"Yaacov Zamir <kzamir at walla.co.il>",
+		NULL
+	};
+
+	GtkWidget * about_hdate = gtk_about_dialog_new ();
+	g_object_set (about_hdate,
+		      "name",  _("hdate-applet"),
+		      "version", VERSION,
+		      "copyright", "Copyright \xc2\xa9 2002-2005 Yaacov Zamir",
+		      "comments", _("Hdate Applet displays the current Hebrew date"),
+		      "authors", authors,
+		      "documenters", documenters,
+		      "translator-credits", _("translator_credits"),
+		      "logo-icon-name", "clock",
+		      NULL);
+	
+	/* close dialog on exit */	      
+	g_signal_connect (about_hdate, "response", G_CALLBACK (gtk_widget_hide_on_delete), NULL);
+	
+	return about_hdate;
+}
+
+
+gint
+hdate_applet_paint (HdateData * cd)
+{
+
+	gchar date[500];
+	gchar temp[500];
+	hdate_struct h, h_parasha;
+	int moon_phase;
+	GdkPixbuf *scaled;
+	GdkPixbuf *pixbuf;
+	int diaspora;
+	int sunrise, sunset;
+
+	diaspora = cd->use_diaspora;
+
+	if (cd->showmoon)
+	{
+		gtk_widget_show (GTK_WIDGET (cd->moon_image));
+	}
+	else
+	{
+		gtk_widget_hide (GTK_WIDGET (cd->moon_image));
+	}
+
+	hdate_set_gdate (&h, 0, 0, 0);
+
+	if (cd->showhebrew)
+	{
+
+		g_snprintf (date, 500, "%s",
+			    hdate_get_format_date (&h, diaspora, TRUE));
+	}
+	else
+	{
+		g_snprintf (date, 500, " ");
+	}
+	
+	gtk_label_set_text (GTK_LABEL (cd->label), date);
+
+	if (cd->showgeneral)
+	{
+		if (cd->showgeneral_long)
+		{
+			g_snprintf (date, 500, "%s %d, %d\n",
+				    hdate_get_month_string (h.gd_mon, FALSE),
+				    h.gd_day, h.gd_year);
+		}
+		else
+		{
+			g_snprintf (date, 500, "%d.%d.%d\n", h.gd_day,
+				    h.gd_mon, h.gd_year);
+		}
+	}
+	else
+	{
+		g_snprintf (date, 500, "");
+	}
+
+	if (cd->showsunset)
+	{
+
+		/* get times */
+		hdate_get_utc_sun_time (h.gd_day, h.gd_mon, h.gd_year,
+					cd->latitude, cd->longitude, &sunrise,
+					&sunset);
+
+		sunset = sunset + cd->time_zone * 60;
+		sunrise = sunrise + cd->time_zone * 60;
+
+		if (cd->summer_clock)
+		{
+			sunrise += 60;
+			sunset += 60;
+		}
+
+		g_snprintf (temp, 500, "(%d:%d - %d:%d)\n",
+			    sunrise / 60, sunrise % 60, sunset / 60,
+			    sunset % 60);
+
+		g_strlcat (date, temp, 500);
+	}
+
+	if (cd->showhebrew)
+	{
+		g_strlcat (date, hdate_get_format_date (&h, diaspora, FALSE),
+			   500);
+	}
+
+	if (cd->showparasha)
+	{
+		hdate_set_jd (&h_parasha, h.hd_jd - h.hd_dw + 7);
+		if (hdate_get_parasha (&h_parasha, diaspora))
+		{
+			g_strlcat (date, "\n", 500);
+			g_strlcat (date,
+				   hdate_get_parasha_string (hdate_get_parasha
+							     (&h_parasha,
+							      diaspora),
+							     FALSE), 500);
+		}
+	}
+
+	gtk_tooltips_set_tip (cd->tooltips, GTK_WIDGET (cd->applet), date,
+			      NULL);
+
+	moon_phase = (h.hd_day) + 1;
+	if (moon_phase < 1 || moon_phase > 28)
+	{
+		moon_phase = 28;
+	}
+
+	g_snprintf (date, 500, "%s/%s-moon-%02d.png", PIXMAP_DIR, cd->theme,
+		    moon_phase);
+
+	pixbuf = gdk_pixbuf_new_from_file (date, NULL);
+
+	scaled = gdk_pixbuf_scale_simple (pixbuf,
+					  panel_applet_get_size (PANEL_APPLET
+								 (cd->
+								  applet)) -
+					  2,
+					  panel_applet_get_size (PANEL_APPLET
+								 (cd->
+								  applet)) -
+					  2, GDK_INTERP_BILINEAR);
+
+
+	gtk_image_set_from_pixbuf (GTK_IMAGE (cd->moon_image), scaled);
+
+	g_object_unref (scaled);
+	g_object_unref (pixbuf);
+
+	return (TRUE);
+}




More information about the Debian-hebrew-package mailing list