g_hash_table_insert (config_defaults, "width", "600");
g_hash_table_insert (config_defaults, "x-position", "0");
g_hash_table_insert (config_defaults, "y-position", "0");
+ g_hash_table_insert (config_defaults, "initial-terminals", "1");
g_hash_table_insert (config_defaults, "tab-position", "top");
g_hash_table_insert (config_defaults, "animation-orientation", "top");
g_hash_table_insert (config_defaults, "animation-delay", "15000");
TILDA_WINDOW_WIDTH,
TILDA_WINDOW_X_POSITION,
TILDA_WINDOW_Y_POSITION,
+ TILDA_WINDOW_INITIAL_TERMINALS,
TILDA_WINDOW_TAB_POSITION,
TILDA_WINDOW_ANIMATION_ORIENTATION,
debug_printf ("window y position: %d\n", self->y_position);
break;
+ case TILDA_WINDOW_INITIAL_TERMINALS:
+ self->initial_terminals = g_value_get_int (value);
+ debug_printf ("window initial terminals: %d\n", self->initial_terminals);
+ break;
+
case TILDA_WINDOW_TAB_POSITION:
self->tab_position = g_value_get_int (value);
gtk_notebook_set_tab_pos (GTK_NOTEBOOK(self->notebook), self->tab_position);
g_value_set_int (value, self->y_position);
break;
+ case TILDA_WINDOW_INITIAL_TERMINALS:
+ g_value_set_int (value, self->initial_terminals);
+ break;
+
case TILDA_WINDOW_TAB_POSITION:
g_value_set_int (value, self->tab_position);
break;
GObject *obj;
TildaWindow *self;
+ gint i;
/* Invoke parent constructor */
TildaWindowClass *klass;
tilda_window_config_int_property (self, "width");
tilda_window_config_int_property (self, "x-position");
tilda_window_config_int_property (self, "y-position");
+ tilda_window_config_int_property (self, "initial-terminals");
tilda_window_config_int_property (self, "animation-delay");
tilda_window_config_enum_property (self, "tab-position");
tilda_window_config_boolean_property (self, "centered-horizontally");
tilda_window_config_boolean_property (self, "centered-vertically");
- // FIXME: It should be configurable how many terms we add at startup
- tilda_window_add_terminal (self);
- tilda_window_add_terminal (self);
+ /* Add the initial terminal(s) */
+ for (i=0; i<self->initial_terminals; ++i)
+ tilda_window_add_terminal (self);
/* Show us if we're ready. If not, just remain hidden. All sub-widgets must
* be gtk_widget_show()n by this point. */
TILDA_WINDOW_Y_POSITION,
pspec);
+ pspec = g_param_spec_int ("initial-terminals",
+ _("Window's inital number of terminals"),
+ NULL,
+ 1,
+ INT_MAX,
+ 1,
+ G_PARAM_READWRITE);
+
+ g_object_class_install_property (gobject_class,
+ TILDA_WINDOW_INITIAL_TERMINALS,
+ pspec);
+
pspec = g_param_spec_int ("tab-position",
_("Position of window's tab bar"),
NULL,