[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