[Initng-svn] r2731 - in under_construction/initconf: . src

svn at initng.thinktux.net svn at initng.thinktux.net
Thu Jan 5 11:48:53 CET 2006


Author: danne
Date: Thu Jan  5 11:48:53 2006
New Revision: 2731

Modified:
   under_construction/initconf/initconf.glade
   under_construction/initconf/src/callbacks.c
   under_construction/initconf/src/callbacks.h
   under_construction/initconf/src/interface.c
   under_construction/initconf/src/interface.h
   under_construction/initconf/src/main.c
   under_construction/initconf/src/rlparser.c
   under_construction/initconf/src/rlparser.h
   under_construction/initconf/src/serviceparser.c
Log:
This program is really starting to get useful now ;-)


Modified: under_construction/initconf/initconf.glade
==============================================================================
--- under_construction/initconf/initconf.glade	(original)
+++ under_construction/initconf/initconf.glade	Thu Jan  5 11:48:53 2006
@@ -11,6 +11,8 @@
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">False</property>
+  <property name="default_width">512</property>
+  <property name="default_height">640</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
   <property name="decorated">True</property>
@@ -240,6 +242,7 @@
 	      <property name="visible">True</property>
 	      <property name="add_tearoffs">False</property>
 	      <property name="focus_on_click">True</property>
+	      <signal name="changed" handler="on_RunlevelCombo_changed" last_modification_time="Thu, 05 Jan 2006 09:42:03 GMT"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -261,6 +264,7 @@
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">True</property>
+	      <signal name="clicked" handler="on_AddButton_clicked" last_modification_time="Thu, 05 Jan 2006 10:30:42 GMT"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -282,6 +286,7 @@
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">True</property>
+	      <signal name="clicked" handler="on_RemoveButton_clicked" last_modification_time="Thu, 05 Jan 2006 10:30:51 GMT"/>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
@@ -423,4 +428,82 @@
   <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
 </widget>
 
+<widget class="GtkDialog" id="initconf_notimplemented">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Initconf message</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox1">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area1">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="okbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-5</property>
+	      <signal name="clicked" handler="on_okbutton1_clicked" last_modification_time="Thu, 05 Jan 2006 10:46:04 GMT"/>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkLabel" id="NotImplementedLabel">
+	  <property name="visible">True</property>
+	  <property name="label" translatable="yes">This feature is not yet implemented!</property>
+	  <property name="use_underline">False</property>
+	  <property name="use_markup">False</property>
+	  <property name="justify">GTK_JUSTIFY_CENTER</property>
+	  <property name="wrap">False</property>
+	  <property name="selectable">False</property>
+	  <property name="xalign">0.5</property>
+	  <property name="yalign">0.5</property>
+	  <property name="xpad">0</property>
+	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 </glade-interface>

Modified: under_construction/initconf/src/callbacks.c
==============================================================================
--- under_construction/initconf/src/callbacks.c	(original)
+++ under_construction/initconf/src/callbacks.c	Thu Jan  5 11:48:53 2006
@@ -13,7 +13,10 @@
 on_save1_activate                      (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
-  printf("on_save1_activate\n");
+  GtkWidget *notimplemented;
+
+  notimplemented = create_initconf_notimplemented();
+  gtk_widget_show(notimplemented);
 }
 
 
@@ -29,7 +32,10 @@
 on_properties1_activate                (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
- printf("on_properties1_activate\n");
+  GtkWidget *notimplemented;
+
+  notimplemented = create_initconf_notimplemented();
+  gtk_widget_show(notimplemented);
 }
 
 
@@ -37,7 +43,10 @@
 on_preferences1_activate               (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
- printf("on_preferences1_activate\n");
+  GtkWidget *notimplemented;
+
+  notimplemented = create_initconf_notimplemented();
+  gtk_widget_show(notimplemented);
 }
 
 
@@ -56,7 +65,10 @@
 on_save_button_clicked                 (GtkToolButton   *toolbutton,
                                         gpointer         user_data)
 {
- printf("on_save_button_clicked\n");
+  GtkWidget *notimplemented;
+
+  notimplemented = create_initconf_notimplemented();
+  gtk_widget_show(notimplemented);
 }
 
 
@@ -71,7 +83,10 @@
 on_refresh_button_clicked                 (GtkToolButton   *toolbutton,
                                         gpointer         user_data)
 {
- printf("on_refresh_button_clicked\n");
+  GtkWidget *notimplemented;
+
+  notimplemented = create_initconf_notimplemented();
+  gtk_widget_show(notimplemented);
 }
 
 
@@ -84,3 +99,43 @@
   return FALSE;
 }
 
+
+void
+on_RunlevelCombo_changed               (GtkComboBox     *combobox,
+                                        gpointer         user_data)
+{
+  update_rllist(combobox);
+}
+
+
+void
+on_AddButton_clicked                   (GtkButton       *button,
+                                        gpointer         user_data)
+{
+  GtkWidget *notimplemented;
+
+  notimplemented = create_initconf_notimplemented();
+  gtk_widget_show(notimplemented);
+}
+
+
+void
+on_RemoveButton_clicked                (GtkButton       *button,
+                                        gpointer         user_data)
+{
+  GtkWidget *notimplemented;
+
+  notimplemented = create_initconf_notimplemented();
+  gtk_widget_show(notimplemented);
+}
+
+
+void
+on_okbutton1_clicked                   (GtkButton       *button,
+                                        gpointer         user_data)
+{
+  GtkWidget *notimplemented;
+  notimplemented = lookup_widget(GTK_WIDGET(button), "initconf_notimplemented");
+  gtk_widget_hide(notimplemented);
+}
+

Modified: under_construction/initconf/src/callbacks.h
==============================================================================
--- under_construction/initconf/src/callbacks.h	(original)
+++ under_construction/initconf/src/callbacks.h	Thu Jan  5 11:48:53 2006
@@ -46,3 +46,19 @@
 void
 on_servicelist_show                    (GtkWidget       *widget,
                                         gpointer         user_data);
+
+void
+on_RunlevelCombo_changed               (GtkComboBox     *combobox,
+                                        gpointer         user_data);
+
+void
+on_AddButton_clicked                   (GtkButton       *button,
+                                        gpointer         user_data);
+
+void
+on_RemoveButton_clicked                (GtkButton       *button,
+                                        gpointer         user_data);
+
+void
+on_okbutton1_clicked                   (GtkButton       *button,
+                                        gpointer         user_data);

Modified: under_construction/initconf/src/interface.c
==============================================================================
--- under_construction/initconf/src/interface.c	(original)
+++ under_construction/initconf/src/interface.c	Thu Jan  5 11:48:53 2006
@@ -88,6 +88,7 @@
   tooltips = gtk_tooltips_new ();
 
   initconf_app = gnome_app_new ("Initconf", _("initconf"));
+  gtk_window_set_default_size (GTK_WINDOW (initconf_app), 512, 640);
 
   bonobodock1 = GNOME_APP (initconf_app)->dock;
   gtk_widget_show (bonobodock1);
@@ -195,6 +196,15 @@
   g_signal_connect ((gpointer) toolbutton1, "clicked",
                     G_CALLBACK (on_refresh_button_clicked),
                     NULL);
+  g_signal_connect ((gpointer) RunlevelCombo, "changed",
+                    G_CALLBACK (on_RunlevelCombo_changed),
+                    NULL);
+  g_signal_connect ((gpointer) AddButton, "clicked",
+                    G_CALLBACK (on_AddButton_clicked),
+                    NULL);
+  g_signal_connect ((gpointer) RemoveButton, "clicked",
+                    G_CALLBACK (on_RemoveButton_clicked),
+                    NULL);
 
   /* Store pointers to all widgets, for use by lookup_widget(). */
   GLADE_HOOKUP_OBJECT_NO_REF (initconf_app, initconf_app, "initconf_app");
@@ -248,3 +258,47 @@
   return initconf_about;
 }
 
+GtkWidget*
+create_initconf_notimplemented (void)
+{
+  GtkWidget *initconf_notimplemented;
+  GtkWidget *dialog_vbox1;
+  GtkWidget *NotImplementedLabel;
+  GtkWidget *dialog_action_area1;
+  GtkWidget *okbutton1;
+
+  initconf_notimplemented = gtk_dialog_new ();
+  gtk_window_set_title (GTK_WINDOW (initconf_notimplemented), _("Initconf message"));
+  gtk_window_set_type_hint (GTK_WINDOW (initconf_notimplemented), GDK_WINDOW_TYPE_HINT_DIALOG);
+
+  dialog_vbox1 = GTK_DIALOG (initconf_notimplemented)->vbox;
+  gtk_widget_show (dialog_vbox1);
+
+  NotImplementedLabel = gtk_label_new (_("This feature is not yet implemented!"));
+  gtk_widget_show (NotImplementedLabel);
+  gtk_box_pack_start (GTK_BOX (dialog_vbox1), NotImplementedLabel, FALSE, FALSE, 0);
+  gtk_label_set_justify (GTK_LABEL (NotImplementedLabel), GTK_JUSTIFY_CENTER);
+
+  dialog_action_area1 = GTK_DIALOG (initconf_notimplemented)->action_area;
+  gtk_widget_show (dialog_action_area1);
+  gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
+
+  okbutton1 = gtk_button_new_from_stock ("gtk-ok");
+  gtk_widget_show (okbutton1);
+  gtk_dialog_add_action_widget (GTK_DIALOG (initconf_notimplemented), okbutton1, GTK_RESPONSE_OK);
+  GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT);
+
+  g_signal_connect ((gpointer) okbutton1, "clicked",
+                    G_CALLBACK (on_okbutton1_clicked),
+                    NULL);
+
+  /* Store pointers to all widgets, for use by lookup_widget(). */
+  GLADE_HOOKUP_OBJECT_NO_REF (initconf_notimplemented, initconf_notimplemented, "initconf_notimplemented");
+  GLADE_HOOKUP_OBJECT_NO_REF (initconf_notimplemented, dialog_vbox1, "dialog_vbox1");
+  GLADE_HOOKUP_OBJECT (initconf_notimplemented, NotImplementedLabel, "NotImplementedLabel");
+  GLADE_HOOKUP_OBJECT_NO_REF (initconf_notimplemented, dialog_action_area1, "dialog_action_area1");
+  GLADE_HOOKUP_OBJECT (initconf_notimplemented, okbutton1, "okbutton1");
+
+  return initconf_notimplemented;
+}
+

Modified: under_construction/initconf/src/interface.h
==============================================================================
--- under_construction/initconf/src/interface.h	(original)
+++ under_construction/initconf/src/interface.h	Thu Jan  5 11:48:53 2006
@@ -4,3 +4,4 @@
 
 GtkWidget* create_initconf_app (void);
 GtkWidget* create_initconf_about (void);
+GtkWidget* create_initconf_notimplemented (void);

Modified: under_construction/initconf/src/main.c
==============================================================================
--- under_construction/initconf/src/main.c	(original)
+++ under_construction/initconf/src/main.c	Thu Jan  5 11:48:53 2006
@@ -41,6 +41,7 @@
 
   populate_servicelist(initconf_app);
   populate_runlevelcombo(initconf_app);
+  init_rllist(initconf_app);
 
   gtk_main ();
   return 0;

Modified: under_construction/initconf/src/rlparser.c
==============================================================================
--- under_construction/initconf/src/rlparser.c	(original)
+++ under_construction/initconf/src/rlparser.c	Thu Jan  5 11:48:53 2006
@@ -8,6 +8,7 @@
 #include "support.h"
 #include <dirent.h>
 #include <fnmatch.h>
+#include <stdio.h>
 
 #define BASEDIR "/etc/initng"
 
@@ -18,6 +19,45 @@
     return 0;
 }
 
+void update_rllist(GtkWidget *RunlevelCombo) {
+  gchar *chosenrl = gtk_combo_box_get_active_text(GTK_COMBO_BOX(RunlevelCombo));
+  struct stat buff;
+  char *path = malloc(strlen(BASEDIR) + strlen(chosenrl) + 11);
+  FILE *file;              /* File descriptor for file */
+  int res;                    /* Result of read */
+  GtkTreeIter iter;
+  GtkWidget *runlevellist;
+  
+  runlevellist = lookup_widget(GTK_WIDGET(RunlevelCombo), "runlevellist");  
+  sprintf(path, "%s/%s.runlevel", BASEDIR, chosenrl);
+  
+  if(lstat(path, &buff)<0)
+    perror("Runlevel file doesn't exist!");
+  
+  file = fopen(path, "rt");   /* Open file. */
+
+  if (file == NULL) 
+    return;
+
+  /* Allocate a file buffer */
+  char* buffer = malloc(64); //UGLY!
+
+  GtkListStore *rlstore = gtk_tree_view_get_model(GTK_TREE_VIEW(runlevellist));
+  gtk_list_store_clear(rlstore);
+  /* Read whole file */
+  while(fgets(buffer, 64, file) > 0) {
+      if(strlen(buffer) > 1) {
+        buffer[strlen(buffer)-1] = 0;
+        gtk_list_store_append (rlstore, &iter);
+        gtk_list_store_set (rlstore, &iter, 0, buffer, -1);
+      }
+  }
+
+  fclose(file);
+  free(buffer);  
+  free(path);
+}
+
 void populate_runlevelcombo(GtkWidget * any_widget) {
   GtkWidget *RunlevelCombo;
   
@@ -31,7 +71,7 @@
   gtk_combo_box_new_text();
   while(n--) {
     namelist[n]->d_name[strlen(namelist[n]->d_name)-9] = 0;
-    gtk_combo_box_append_text(GTK_COMBO_BOX(RunlevelCombo),
+    gtk_combo_box_prepend_text(GTK_COMBO_BOX(RunlevelCombo),
                               namelist[n]->d_name);
     free(namelist[n]);
   }
@@ -39,3 +79,22 @@
 
   //g_object_unref(RunlevelCombo);
 }
+
+void init_rllist(GtkWidget * any_widget) {
+  GtkWidget *runlevellist;
+  GtkCellRenderer *rlrenderer;
+  GtkTreeModel *rlmodel;
+  GtkListStore  *rlstore = gtk_list_store_new (1, G_TYPE_STRING);
+
+  rlrenderer = gtk_cell_renderer_text_new();
+  runlevellist = lookup_widget(GTK_WIDGET(any_widget), "runlevellist");
+  gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(runlevellist),
+                                              -1, NULL,
+					      rlrenderer, "text", 0,
+					      NULL);
+
+  rlmodel = GTK_TREE_MODEL(rlstore);
+  gtk_tree_view_set_model(GTK_TREE_VIEW(runlevellist), rlmodel);
+  
+  g_object_unref(rlmodel);
+}

Modified: under_construction/initconf/src/rlparser.h
==============================================================================
--- under_construction/initconf/src/rlparser.h	(original)
+++ under_construction/initconf/src/rlparser.h	Thu Jan  5 11:48:53 2006
@@ -1 +1,2 @@
 void populate_runlevelcombo(GtkWidget * any_widget);
+void init_rllist(GtkWidget * any_widget);

Modified: under_construction/initconf/src/serviceparser.c
==============================================================================
--- under_construction/initconf/src/serviceparser.c	(original)
+++ under_construction/initconf/src/serviceparser.c	Thu Jan  5 11:48:53 2006
@@ -40,7 +40,6 @@
         recursive_scan(fullpath, store);
       else if(!fnmatch("*.i", namelist[n]->d_name, 0)) {
         FILE *file;              /* File descriptor for file */
-        struct stat stat_buf;
         int res;                    /* Result of read */
 
         file = fopen(fullpath, "rt");   /* Open file. */
@@ -75,18 +74,18 @@
 void populate_servicelist(GtkWidget * any_widget) {
 
   GtkWidget *servicelist;
-  GtkCellRenderer *renderer;
+  GtkCellRenderer *servicerenderer;
   GtkTreeModel *servicemodel;
-  GtkListStore  *store = gtk_list_store_new (1, G_TYPE_STRING);
+  GtkListStore  *servicestore = gtk_list_store_new (1, G_TYPE_STRING);
 
-  renderer = gtk_cell_renderer_text_new();
+  servicerenderer = gtk_cell_renderer_text_new();
   servicelist = lookup_widget(GTK_WIDGET(any_widget), "servicelist");
   gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(servicelist),
                                               -1, "system",
-					      renderer, "text", 0,
+					      servicerenderer, "text", 0,
 					      NULL);
-  recursive_scan(BASEDIR, store);
-  servicemodel = GTK_TREE_MODEL(store);
+  recursive_scan(BASEDIR, servicestore);
+  servicemodel = GTK_TREE_MODEL(servicestore);
   gtk_tree_view_set_model(GTK_TREE_VIEW(servicelist), servicemodel);
   
   g_object_unref(servicemodel);


More information about the Initng-svn mailing list