Merge lp:~kyleb/sakura/custom-palette into lp:~dabisu/sakura/sakura

Proposed by Kyle Brady
Status: Rejected
Rejected by: David Gómez
Proposed branch: lp:~kyleb/sakura/custom-palette
Merge into: lp:~dabisu/sakura/sakura
Diff against target: 492 lines (+91/-66)
1 file modified
src/sakura.c (+91/-66)
To merge this branch: bzr merge lp:~kyleb/sakura/custom-palette
Reviewer Review Type Date Requested Status
David Gómez Disapprove
Review via email: mp+73968@code.launchpad.net

Description of the change

This branch adds the ability to use a custom palette in sakura. This is done by adding a new section in the config file that stores the options color0-color15, similar to .Xdefaults. The default values for this are pulled from the Linux palette.

To post a comment you must log in.
Revision history for this message
David Gómez (dabisu) wrote :

Palette customization is something i don't want to be in sakura. But if you have a custom palette to propose, please submit it. And sorry for the long long time to answer this.

Revision history for this message
David Gómez (dabisu) :
review: Disapprove

Unmerged revisions

357. By Kyle Brady

Add the ability to use a custom palette.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/sakura.c'
--- src/sakura.c 2011-07-31 00:45:30 +0000
+++ src/sakura.c 2011-09-03 21:24:23 +0000
@@ -136,6 +136,8 @@
136 { 0, 0xffff, 0xffff, 0xffff }136 { 0, 0xffff, 0xffff, 0xffff }
137};137};
138138
139static GdkColor custom_palette[PALETTE_SIZE];
140
139static struct {141static struct {
140 GtkWidget *main_window;142 GtkWidget *main_window;
141 GtkWidget *notebook;143 GtkWidget *notebook;
@@ -236,6 +238,7 @@
236#define DEFAULT_FULLSCREEN_KEY GDK_F11238#define DEFAULT_FULLSCREEN_KEY GDK_F11
237#define ERROR_BUFFER_LENGTH 256239#define ERROR_BUFFER_LENGTH 256
238const char cfg_group[] = "sakura";240const char cfg_group[] = "sakura";
241const char palette_cfg_group[] = "custom palette";
239242
240static GQuark term_data_id = 0;243static GQuark term_data_id = 0;
241#define sakura_get_page_term( sakura, page_idx ) \244#define sakura_get_page_term( sakura, page_idx ) \
@@ -247,18 +250,18 @@
247 G_OBJECT( gtk_notebook_get_nth_page( (GtkNotebook*)sakura.notebook, page_idx) ), \250 G_OBJECT( gtk_notebook_get_nth_page( (GtkNotebook*)sakura.notebook, page_idx) ), \
248 term_data_id, term, (GDestroyNotify)g_free);251 term_data_id, term, (GDestroyNotify)g_free);
249252
250#define sakura_set_config_integer(key, value) do {\253#define sakura_set_config_integer(key, value, group) do {\
251 g_key_file_set_integer(sakura.cfg, cfg_group, key, value);\254 g_key_file_set_integer(sakura.cfg, group, key, value);\
252 sakura.config_modified=TRUE;\255 sakura.config_modified=TRUE;\
253 } while(0);256 } while(0);
254257
255#define sakura_set_config_string(key, value) do {\258#define sakura_set_config_string(key, value, group) do {\
256 g_key_file_set_value(sakura.cfg, cfg_group, key, value);\259 g_key_file_set_value(sakura.cfg, group, key, value);\
257 sakura.config_modified=TRUE;\260 sakura.config_modified=TRUE;\
258 } while(0);261 } while(0);
259262
260#define sakura_set_config_boolean(key, value) do {\263#define sakura_set_config_boolean(key, value, group) do {\
261 g_key_file_set_boolean(sakura.cfg, cfg_group, key, value);\264 g_key_file_set_boolean(sakura.cfg, group, key, value);\
262 sakura.config_modified=TRUE;\265 sakura.config_modified=TRUE;\
263 } while(0);266 } while(0);
264267
@@ -743,7 +746,7 @@
743 sakura.font=pango_font_description_from_string(gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)));746 sakura.font=pango_font_description_from_string(gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)));
744 sakura_set_font();747 sakura_set_font();
745 sakura_set_size(sakura.columns, sakura.rows);748 sakura_set_size(sakura.columns, sakura.rows);
746 sakura_set_config_string("font", pango_font_description_to_string(sakura.font));749 sakura_set_config_string("font", pango_font_description_to_string(sakura.font), cfg_group);
747 }750 }
748751
749 gtk_widget_destroy(font_dialog);752 gtk_widget_destroy(font_dialog);
@@ -874,15 +877,15 @@
874 gchar *cfgtmp;877 gchar *cfgtmp;
875 cfgtmp = g_strdup_printf("#%02x%02x%02x", sakura.forecolor.red >>8,878 cfgtmp = g_strdup_printf("#%02x%02x%02x", sakura.forecolor.red >>8,
876 sakura.forecolor.green>>8, sakura.forecolor.blue>>8);879 sakura.forecolor.green>>8, sakura.forecolor.blue>>8);
877 sakura_set_config_string("forecolor", cfgtmp);880 sakura_set_config_string("forecolor", cfgtmp, cfg_group);
878 g_free(cfgtmp);881 g_free(cfgtmp);
879882
880 cfgtmp = g_strdup_printf("#%02x%02x%02x", sakura.backcolor.red >>8,883 cfgtmp = g_strdup_printf("#%02x%02x%02x", sakura.backcolor.red >>8,
881 sakura.backcolor.green>>8, sakura.backcolor.blue>>8);884 sakura.backcolor.green>>8, sakura.backcolor.blue>>8);
882 sakura_set_config_string("backcolor", cfgtmp);885 sakura_set_config_string("backcolor", cfgtmp, cfg_group);
883 g_free(cfgtmp);886 g_free(cfgtmp);
884887
885 sakura_set_config_integer("backalpha", sakura.backalpha);888 sakura_set_config_integer("backalpha", sakura.backalpha, cfg_group);
886889
887 }890 }
888891
@@ -981,7 +984,7 @@
981 vte_terminal_set_opacity(VTE_TERMINAL (term->vte), sakura.backalpha);984 vte_terminal_set_opacity(VTE_TERMINAL (term->vte), sakura.backalpha);
982 vte_terminal_set_colors(VTE_TERMINAL(term->vte), &sakura.forecolor, &sakura.backcolor,985 vte_terminal_set_colors(VTE_TERMINAL(term->vte), &sakura.forecolor, &sakura.backcolor,
983 sakura.palette, PALETTE_SIZE);986 sakura.palette, PALETTE_SIZE);
984 sakura_set_config_integer("backalpha", sakura.backalpha);987 sakura_set_config_integer("backalpha", sakura.backalpha, cfg_group);
985 sakura.fake_transparency = TRUE;988 sakura.fake_transparency = TRUE;
986 } else {989 } else {
987 /* Fake transparency, there is no composite manager */990 /* Fake transparency, there is no composite manager */
@@ -989,7 +992,7 @@
989 vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), sakura.opacity_level);992 vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), sakura.opacity_level);
990 vte_terminal_set_background_tint_color(VTE_TERMINAL(term->vte), &sakura.backcolor);993 vte_terminal_set_background_tint_color(VTE_TERMINAL(term->vte), &sakura.backcolor);
991 sakura.fake_transparency = TRUE;994 sakura.fake_transparency = TRUE;
992 sakura_set_config_string("fake_transparency", "Yes");995 sakura_set_config_string("fake_transparency", "Yes", cfg_group);
993 }996 }
994 }997 }
995998
@@ -1000,12 +1003,12 @@
1000 term = sakura_get_page_term(sakura, i);1003 term = sakura_get_page_term(sakura, i);
1001 vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte), FALSE);1004 vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte), FALSE);
1002 sakura.fake_transparency = FALSE;1005 sakura.fake_transparency = FALSE;
1003 sakura_set_config_string("fake_transparency", "No");1006 sakura_set_config_string("fake_transparency", "No", cfg_group);
1004 }1007 }
10051008
1006 }1009 }
10071010
1008 sakura_set_config_string("opacity_level", sakura.opacity_level_percent);1011 sakura_set_config_string("opacity_level", sakura.opacity_level_percent, cfg_group);
1009 }1012 }
10101013
1011 gtk_widget_destroy(opacity_dialog);1014 gtk_widget_destroy(opacity_dialog);
@@ -1141,7 +1144,7 @@
11411144
1142 // FIXME: is this really needed? IMHO, this should be done just before1145 // FIXME: is this really needed? IMHO, this should be done just before
1143 // dumping the config to the config file.1146 // dumping the config to the config file.
1144 sakura_set_config_string("background", "none");1147 sakura_set_config_string("background", "none", cfg_group);
11451148
1146 g_free(sakura.background);1149 g_free(sakura.background);
1147 sakura.background=NULL;1150 sakura.background=NULL;
@@ -1159,13 +1162,13 @@
11591162
1160 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {1163 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
1161 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sakura.notebook), TRUE);1164 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sakura.notebook), TRUE);
1162 sakura_set_config_string("show_always_first_tab", "Yes");1165 sakura_set_config_string("show_always_first_tab", "Yes", cfg_group);
1163 } else {1166 } else {
1164 /* Only hide tabs if the notebook has one page */1167 /* Only hide tabs if the notebook has one page */
1165 if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(sakura.notebook)) == 1) {1168 if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(sakura.notebook)) == 1) {
1166 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sakura.notebook), FALSE);1169 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sakura.notebook), FALSE);
1167 }1170 }
1168 sakura_set_config_string("show_always_first_tab", "No");1171 sakura_set_config_string("show_always_first_tab", "No", cfg_group);
1169 }1172 }
1170}1173}
11711174
@@ -1180,9 +1183,9 @@
1180 term = sakura_get_page_term(sakura, page);1183 term = sakura_get_page_term(sakura, page);
11811184
1182 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {1185 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
1183 sakura_set_config_boolean("closebutton", TRUE);1186 sakura_set_config_boolean("closebutton", TRUE, cfg_group);
1184 } else {1187 } else {
1185 sakura_set_config_boolean("closebutton", FALSE);1188 sakura_set_config_boolean("closebutton", FALSE, cfg_group);
1186 }1189 }
1187}1190}
11881191
@@ -1203,10 +1206,10 @@
12031206
1204 if (!g_key_file_get_boolean(sakura.cfg, cfg_group, "scrollbar", NULL)) {1207 if (!g_key_file_get_boolean(sakura.cfg, cfg_group, "scrollbar", NULL)) {
1205 sakura.show_scrollbar=true;1208 sakura.show_scrollbar=true;
1206 sakura_set_config_boolean("scrollbar", TRUE);1209 sakura_set_config_boolean("scrollbar", TRUE, cfg_group);
1207 } else {1210 } else {
1208 sakura.show_scrollbar=false;1211 sakura.show_scrollbar=false;
1209 sakura_set_config_boolean("scrollbar", FALSE);1212 sakura_set_config_boolean("scrollbar", FALSE, cfg_group);
1210 }1213 }
12111214
1212 /* Toggle/Untoggle the scrollbar for all tabs */1215 /* Toggle/Untoggle the scrollbar for all tabs */
@@ -1231,10 +1234,10 @@
12311234
1232 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {1235 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
1233 vte_terminal_set_audible_bell (VTE_TERMINAL(term->vte), TRUE);1236 vte_terminal_set_audible_bell (VTE_TERMINAL(term->vte), TRUE);
1234 sakura_set_config_string("audible_bell", "Yes");1237 sakura_set_config_string("audible_bell", "Yes", cfg_group);
1235 } else {1238 } else {
1236 vte_terminal_set_audible_bell (VTE_TERMINAL(term->vte), FALSE);1239 vte_terminal_set_audible_bell (VTE_TERMINAL(term->vte), FALSE);
1237 sakura_set_config_string("audible_bell", "No");1240 sakura_set_config_string("audible_bell", "No", cfg_group);
1238 }1241 }
1239}1242}
12401243
@@ -1250,10 +1253,10 @@
12501253
1251 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {1254 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
1252 vte_terminal_set_visible_bell (VTE_TERMINAL(term->vte), TRUE);1255 vte_terminal_set_visible_bell (VTE_TERMINAL(term->vte), TRUE);
1253 sakura_set_config_string("visible_bell", "Yes");1256 sakura_set_config_string("visible_bell", "Yes", cfg_group);
1254 } else {1257 } else {
1255 vte_terminal_set_visible_bell (VTE_TERMINAL(term->vte), FALSE);1258 vte_terminal_set_visible_bell (VTE_TERMINAL(term->vte), FALSE);
1256 sakura_set_config_string("visible_bell", "No");1259 sakura_set_config_string("visible_bell", "No", cfg_group);
1257 }1260 }
1258}1261}
12591262
@@ -1269,10 +1272,10 @@
12691272
1270 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {1273 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
1271 vte_terminal_set_cursor_blink_mode (VTE_TERMINAL(term->vte), VTE_CURSOR_BLINK_ON);1274 vte_terminal_set_cursor_blink_mode (VTE_TERMINAL(term->vte), VTE_CURSOR_BLINK_ON);
1272 sakura_set_config_string("blinking_cursor", "Yes");1275 sakura_set_config_string("blinking_cursor", "Yes", cfg_group);
1273 } else {1276 } else {
1274 vte_terminal_set_cursor_blink_mode (VTE_TERMINAL(term->vte), VTE_CURSOR_BLINK_OFF);1277 vte_terminal_set_cursor_blink_mode (VTE_TERMINAL(term->vte), VTE_CURSOR_BLINK_OFF);
1275 sakura_set_config_string("blinking_cursor", "No");1278 sakura_set_config_string("blinking_cursor", "No", cfg_group);
1276 }1279 }
1277}1280}
12781281
@@ -1282,10 +1285,10 @@
1282{1285{
1283 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {1286 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
1284 gtk_window_set_decorated (GTK_WINDOW(sakura.main_window), FALSE);1287 gtk_window_set_decorated (GTK_WINDOW(sakura.main_window), FALSE);
1285 sakura_set_config_string("borderless", "Yes");1288 sakura_set_config_string("borderless", "Yes", cfg_group);
1286 } else {1289 } else {
1287 gtk_window_set_decorated (GTK_WINDOW(sakura.main_window), TRUE);1290 gtk_window_set_decorated (GTK_WINDOW(sakura.main_window), TRUE);
1288 sakura_set_config_string("borderless", "No");1291 sakura_set_config_string("borderless", "No", cfg_group);
1289 }1292 }
1290}1293}
12911294
@@ -1295,10 +1298,10 @@
1295{1298{
1296 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {1299 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
1297 gtk_window_maximize (GTK_WINDOW(sakura.main_window));1300 gtk_window_maximize (GTK_WINDOW(sakura.main_window));
1298 sakura_set_config_string("maximized", "Yes");1301 sakura_set_config_string("maximized", "Yes", cfg_group);
1299 } else {1302 } else {
1300 gtk_window_unmaximize (GTK_WINDOW(sakura.main_window));1303 gtk_window_unmaximize (GTK_WINDOW(sakura.main_window));
1301 sakura_set_config_string("maximized", "No");1304 sakura_set_config_string("maximized", "No", cfg_group);
1302 }1305 }
1303}1306}
13041307
@@ -1320,8 +1323,10 @@
1320 sakura.palette=tango_palette;1323 sakura.palette=tango_palette;
1321 } else if (strcmp(palette, "xterm")==0) {1324 } else if (strcmp(palette, "xterm")==0) {
1322 sakura.palette=xterm_palette;1325 sakura.palette=xterm_palette;
1326 } else if (strcmp(palette, "rxvt")==0) {
1327 sakura.palette=xterm_palette;
1323 } else {1328 } else {
1324 sakura.palette=rxvt_palette;1329 sakura.palette=custom_palette;
1325 }1330 }
13261331
1327 for (i = (n_pages - 1); i >= 0; i--) {1332 for (i = (n_pages - 1); i >= 0; i--) {
@@ -1330,7 +1335,7 @@
1330 sakura.palette, PALETTE_SIZE);1335 sakura.palette, PALETTE_SIZE);
1331 }1336 }
13321337
1333 sakura_set_config_string("palette", palette);1338 sakura_set_config_string("palette", palette, cfg_group);
1334 }1339 }
1335}1340}
13361341
@@ -1600,7 +1605,7 @@
1600 */1605 */
16011606
1602 if (!g_key_file_has_key(sakura.cfg, cfg_group, "forecolor", NULL)) {1607 if (!g_key_file_has_key(sakura.cfg, cfg_group, "forecolor", NULL)) {
1603 sakura_set_config_string("forecolor", "#c0c0c0");1608 sakura_set_config_string("forecolor", "#c0c0c0", cfg_group);
1604 }1609 }
1605 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "forecolor", NULL);1610 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "forecolor", NULL);
1606 gdk_color_parse(cfgtmp, &sakura.forecolor);1611 gdk_color_parse(cfgtmp, &sakura.forecolor);
@@ -1608,7 +1613,7 @@
16081613
16091614
1610 if (!g_key_file_has_key(sakura.cfg, cfg_group, "backcolor", NULL)) {1615 if (!g_key_file_has_key(sakura.cfg, cfg_group, "backcolor", NULL)) {
1611 sakura_set_config_string("backcolor", "#000000");1616 sakura_set_config_string("backcolor", "#000000", cfg_group);
1612 }1617 }
1613 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "backcolor", NULL);1618 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "backcolor", NULL);
1614 gdk_color_parse(cfgtmp, &sakura.backcolor);1619 gdk_color_parse(cfgtmp, &sakura.backcolor);
@@ -1616,13 +1621,13 @@
16161621
16171622
1618 if (!g_key_file_has_key(sakura.cfg, cfg_group, "backalpha", NULL)) {1623 if (!g_key_file_has_key(sakura.cfg, cfg_group, "backalpha", NULL)) {
1619 sakura_set_config_integer("backalpha", 65535);1624 sakura_set_config_integer("backalpha", 65535, cfg_group);
1620 }1625 }
1621 sakura.backalpha = g_key_file_get_integer(sakura.cfg, cfg_group, "backalpha", NULL);1626 sakura.backalpha = g_key_file_get_integer(sakura.cfg, cfg_group, "backalpha", NULL);
16221627
16231628
1624 if (!g_key_file_has_key(sakura.cfg, cfg_group, "opacity_level", NULL)) {1629 if (!g_key_file_has_key(sakura.cfg, cfg_group, "opacity_level", NULL)) {
1625 sakura_set_config_string("opacity_level", "80");1630 sakura_set_config_string("opacity_level", "80", cfg_group);
1626 }1631 }
1627 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "opacity_level", NULL);1632 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "opacity_level", NULL);
1628 sakura.opacity_level_percent=cfgtmp;1633 sakura.opacity_level_percent=cfgtmp;
@@ -1631,7 +1636,7 @@
16311636
16321637
1633 if (!g_key_file_has_key(sakura.cfg, cfg_group, "fake_transparency", NULL)) {1638 if (!g_key_file_has_key(sakura.cfg, cfg_group, "fake_transparency", NULL)) {
1634 sakura_set_config_string("fake_transparency", "No");1639 sakura_set_config_string("fake_transparency", "No", cfg_group);
1635 }1640 }
1636 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "fake_transparency", NULL);1641 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "fake_transparency", NULL);
1637 if (strcmp(cfgtmp, "Yes")==0) {1642 if (strcmp(cfgtmp, "Yes")==0) {
@@ -1643,7 +1648,7 @@
16431648
16441649
1645 if (!g_key_file_has_key(sakura.cfg, cfg_group, "background", NULL)) {1650 if (!g_key_file_has_key(sakura.cfg, cfg_group, "background", NULL)) {
1646 sakura_set_config_string("background", "none");1651 sakura_set_config_string("background", "none", cfg_group);
1647 }1652 }
1648 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "background", NULL);1653 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "background", NULL);
1649 if (strcmp(cfgtmp, "none")==0) {1654 if (strcmp(cfgtmp, "none")==0) {
@@ -1655,65 +1660,78 @@
16551660
16561661
1657 if (!g_key_file_has_key(sakura.cfg, cfg_group, "font", NULL)) {1662 if (!g_key_file_has_key(sakura.cfg, cfg_group, "font", NULL)) {
1658 sakura_set_config_string("font", DEFAULT_FONT);1663 sakura_set_config_string("font", DEFAULT_FONT, cfg_group);
1659 }1664 }
16601665
1661 if (!g_key_file_has_key(sakura.cfg, cfg_group, "show_always_first_tab", NULL)) {1666 if (!g_key_file_has_key(sakura.cfg, cfg_group, "show_always_first_tab", NULL)) {
1662 sakura_set_config_string("show_always_first_tab", "No");1667 sakura_set_config_string("show_always_first_tab", "No", cfg_group);
1663 }1668 }
16641669
1665 if (!g_key_file_has_key(sakura.cfg, cfg_group, "scrollbar", NULL)) {1670 if (!g_key_file_has_key(sakura.cfg, cfg_group, "scrollbar", NULL)) {
1666 sakura_set_config_boolean("scrollbar", FALSE);1671 sakura_set_config_boolean("scrollbar", FALSE, cfg_group);
1667 }1672 }
1668 sakura.show_scrollbar = g_key_file_get_boolean(sakura.cfg, cfg_group, "scrollbar", NULL);1673 sakura.show_scrollbar = g_key_file_get_boolean(sakura.cfg, cfg_group, "scrollbar", NULL);
16691674
1670 if (!g_key_file_has_key(sakura.cfg, cfg_group, "closebutton", NULL)) {1675 if (!g_key_file_has_key(sakura.cfg, cfg_group, "closebutton", NULL)) {
1671 sakura_set_config_boolean("closebutton", FALSE);1676 sakura_set_config_boolean("closebutton", FALSE, cfg_group);
1672 }1677 }
1673 sakura.show_closebutton = g_key_file_get_boolean(sakura.cfg, cfg_group, "closebutton", NULL);1678 sakura.show_closebutton = g_key_file_get_boolean(sakura.cfg, cfg_group, "closebutton", NULL);
16741679
1675 if (!g_key_file_has_key(sakura.cfg, cfg_group, "audible_bell", NULL)) {1680 if (!g_key_file_has_key(sakura.cfg, cfg_group, "audible_bell", NULL)) {
1676 sakura_set_config_string("audible_bell", "Yes");1681 sakura_set_config_string("audible_bell", "Yes", cfg_group);
1677 }1682 }
1678 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "audible_bell", NULL);1683 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "audible_bell", NULL);
1679 sakura.audible_bell= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;1684 sakura.audible_bell= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
1680 g_free(cfgtmp);1685 g_free(cfgtmp);
16811686
1682 if (!g_key_file_has_key(sakura.cfg, cfg_group, "visible_bell", NULL)) {1687 if (!g_key_file_has_key(sakura.cfg, cfg_group, "visible_bell", NULL)) {
1683 sakura_set_config_string("visible_bell", "No");1688 sakura_set_config_string("visible_bell", "No", cfg_group);
1684 }1689 }
1685 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "visible_bell", NULL);1690 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "visible_bell", NULL);
1686 sakura.visible_bell= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;1691 sakura.visible_bell= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
1687 g_free(cfgtmp);1692 g_free(cfgtmp);
16881693
1689 if (!g_key_file_has_key(sakura.cfg, cfg_group, "blinking_cursor", NULL)) {1694 if (!g_key_file_has_key(sakura.cfg, cfg_group, "blinking_cursor", NULL)) {
1690 sakura_set_config_string("blinking_cursor", "No");1695 sakura_set_config_string("blinking_cursor", "No", cfg_group);
1691 }1696 }
1692 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "blinking_cursor", NULL);1697 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "blinking_cursor", NULL);
1693 sakura.blinking_cursor= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;1698 sakura.blinking_cursor= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
1694 g_free(cfgtmp);1699 g_free(cfgtmp);
16951700
1696 if (!g_key_file_has_key(sakura.cfg, cfg_group, "borderless", NULL)) {1701 if (!g_key_file_has_key(sakura.cfg, cfg_group, "borderless", NULL)) {
1697 sakura_set_config_string("borderless", "No");1702 sakura_set_config_string("borderless", "No", cfg_group);
1698 }1703 }
1699 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "borderless", NULL);1704 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "borderless", NULL);
1700 sakura.borderless= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;1705 sakura.borderless= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
1701 g_free(cfgtmp);1706 g_free(cfgtmp);
17021707
1703 if (!g_key_file_has_key(sakura.cfg, cfg_group, "maximized", NULL)) {1708 if (!g_key_file_has_key(sakura.cfg, cfg_group, "maximized", NULL)) {
1704 sakura_set_config_string("maximized", "No");1709 sakura_set_config_string("maximized", "No", cfg_group);
1705 }1710 }
1706 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "maximized", NULL);1711 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "maximized", NULL);
1707 sakura.maximized= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;1712 sakura.maximized= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
1708 g_free(cfgtmp);1713 g_free(cfgtmp);
17091714
1710 if (!g_key_file_has_key(sakura.cfg, cfg_group, "word_chars", NULL)) {1715 if (!g_key_file_has_key(sakura.cfg, cfg_group, "word_chars", NULL)) {
1711 sakura_set_config_string("word_chars", DEFAULT_WORD_CHARS);1716 sakura_set_config_string("word_chars", DEFAULT_WORD_CHARS, cfg_group);
1712 }1717 }
1713 sakura.word_chars = g_key_file_get_value(sakura.cfg, cfg_group, "word_chars", NULL);1718 sakura.word_chars = g_key_file_get_value(sakura.cfg, cfg_group, "word_chars", NULL);
17141719
1720 gchar *paltmp = NULL;
1721 for(int i=0; i<PALETTE_SIZE; i++)
1722 {
1723 paltmp = g_strdup_printf("color%i", i);
1724 if (!g_key_file_has_key(sakura.cfg, palette_cfg_group, paltmp, NULL)) {
1725 sakura_set_config_string(paltmp, gdk_color_to_string(&linux_palette[i]), palette_cfg_group);
1726 }
1727 cfgtmp = g_key_file_get_value(sakura.cfg, palette_cfg_group, paltmp, NULL);
1728 gdk_color_parse(cfgtmp, &custom_palette[i]);
1729 g_free(paltmp);
1730 g_free(cfgtmp);
1731 }
1732
1715 if (!g_key_file_has_key(sakura.cfg, cfg_group, "palette", NULL)) {1733 if (!g_key_file_has_key(sakura.cfg, cfg_group, "palette", NULL)) {
1716 sakura_set_config_string("palette", DEFAULT_PALETTE);1734 sakura_set_config_string("palette", DEFAULT_PALETTE, cfg_group);
1717 }1735 }
1718 cfgtmp = g_key_file_get_string(sakura.cfg, cfg_group, "palette", NULL);1736 cfgtmp = g_key_file_get_string(sakura.cfg, cfg_group, "palette", NULL);
1719 if (strcmp(cfgtmp, "linux")==0) {1737 if (strcmp(cfgtmp, "linux")==0) {
@@ -1722,38 +1740,40 @@
1722 sakura.palette=tango_palette;1740 sakura.palette=tango_palette;
1723 } else if (strcmp(cfgtmp, "xterm")==0) {1741 } else if (strcmp(cfgtmp, "xterm")==0) {
1724 sakura.palette=xterm_palette;1742 sakura.palette=xterm_palette;
1725 } else {1743 } else if (strcmp(cfgtmp, "rxvt")==0) {
1726 sakura.palette=rxvt_palette;1744 sakura.palette=rxvt_palette;
1745 } else {
1746 sakura.palette=custom_palette;
1727 }1747 }
1728 g_free(cfgtmp);1748 g_free(cfgtmp);
17291749
1730 if (!g_key_file_has_key(sakura.cfg, cfg_group, "add_tab_accelerator", NULL)) {1750 if (!g_key_file_has_key(sakura.cfg, cfg_group, "add_tab_accelerator", NULL)) {
1731 sakura_set_config_integer("add_tab_accelerator", DEFAULT_ADD_TAB_ACCELERATOR);1751 sakura_set_config_integer("add_tab_accelerator", DEFAULT_ADD_TAB_ACCELERATOR, cfg_group);
1732 }1752 }
1733 sakura.add_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "add_tab_accelerator", NULL);1753 sakura.add_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "add_tab_accelerator", NULL);
17341754
1735 if (!g_key_file_has_key(sakura.cfg, cfg_group, "del_tab_accelerator", NULL)) {1755 if (!g_key_file_has_key(sakura.cfg, cfg_group, "del_tab_accelerator", NULL)) {
1736 sakura_set_config_integer("del_tab_accelerator", DEFAULT_DEL_TAB_ACCELERATOR);1756 sakura_set_config_integer("del_tab_accelerator", DEFAULT_DEL_TAB_ACCELERATOR, cfg_group);
1737 }1757 }
1738 sakura.del_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "del_tab_accelerator", NULL);1758 sakura.del_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "del_tab_accelerator", NULL);
17391759
1740 if (!g_key_file_has_key(sakura.cfg, cfg_group, "switch_tab_accelerator", NULL)) {1760 if (!g_key_file_has_key(sakura.cfg, cfg_group, "switch_tab_accelerator", NULL)) {
1741 sakura_set_config_integer("switch_tab_accelerator", DEFAULT_SWITCH_TAB_ACCELERATOR);1761 sakura_set_config_integer("switch_tab_accelerator", DEFAULT_SWITCH_TAB_ACCELERATOR, cfg_group);
1742 }1762 }
1743 sakura.switch_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "switch_tab_accelerator", NULL);1763 sakura.switch_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "switch_tab_accelerator", NULL);
17441764
1745 if (!g_key_file_has_key(sakura.cfg, cfg_group, "copy_accelerator", NULL)) {1765 if (!g_key_file_has_key(sakura.cfg, cfg_group, "copy_accelerator", NULL)) {
1746 sakura_set_config_integer("copy_accelerator", DEFAULT_COPY_ACCELERATOR);1766 sakura_set_config_integer("copy_accelerator", DEFAULT_COPY_ACCELERATOR, cfg_group);
1747 }1767 }
1748 sakura.copy_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "copy_accelerator", NULL);1768 sakura.copy_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "copy_accelerator", NULL);
17491769
1750 if (!g_key_file_has_key(sakura.cfg, cfg_group, "scrollbar_accelerator", NULL)) {1770 if (!g_key_file_has_key(sakura.cfg, cfg_group, "scrollbar_accelerator", NULL)) {
1751 sakura_set_config_integer("scrollbar_accelerator", DEFAULT_SCROLLBAR_ACCELERATOR);1771 sakura_set_config_integer("scrollbar_accelerator", DEFAULT_SCROLLBAR_ACCELERATOR, cfg_group);
1752 }1772 }
1753 sakura.scrollbar_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "scrollbar_accelerator", NULL);1773 sakura.scrollbar_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "scrollbar_accelerator", NULL);
17541774
1755 if (!g_key_file_has_key(sakura.cfg, cfg_group, "open_url_accelerator", NULL)) {1775 if (!g_key_file_has_key(sakura.cfg, cfg_group, "open_url_accelerator", NULL)) {
1756 sakura_set_config_integer("open_url_accelerator", DEFAULT_OPEN_URL_ACCELERATOR);1776 sakura_set_config_integer("open_url_accelerator", DEFAULT_OPEN_URL_ACCELERATOR, cfg_group);
1757 }1777 }
1758 sakura.open_url_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "open_url_accelerator", NULL);1778 sakura.open_url_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "open_url_accelerator", NULL);
17591779
@@ -1891,7 +1911,7 @@
1891 *item_opacity_menu, *item_show_first_tab, *item_audible_bell, *item_visible_bell,1911 *item_opacity_menu, *item_show_first_tab, *item_audible_bell, *item_visible_bell,
1892 *item_blinking_cursor, *item_borderless_maximized,1912 *item_blinking_cursor, *item_borderless_maximized,
1893 *item_palette, *item_palette_tango, *item_palette_linux, *item_palette_xterm, *item_palette_rxvt,1913 *item_palette, *item_palette_tango, *item_palette_linux, *item_palette_xterm, *item_palette_rxvt,
1894 *item_show_close_button;1914 *item_palette_custom, *item_show_close_button;
1895 GtkAction *action_open_link, *action_copy_link, *action_new_tab, *action_set_name, *action_close_tab,1915 GtkAction *action_open_link, *action_copy_link, *action_new_tab, *action_set_name, *action_close_tab,
1896 *action_new_window,1916 *action_new_window,
1897 *action_copy, *action_paste, *action_select_font, *action_select_colors,1917 *action_copy, *action_paste, *action_select_font, *action_select_colors,
@@ -1945,6 +1965,7 @@
1945 item_palette_linux=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "Linux");1965 item_palette_linux=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "Linux");
1946 item_palette_xterm=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "xterm");1966 item_palette_xterm=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "xterm");
1947 item_palette_rxvt=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "rxvt");1967 item_palette_rxvt=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "rxvt");
1968 item_palette_custom=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "Custom");
1948 item_options=gtk_menu_item_new_with_label(_("Options"));1969 item_options=gtk_menu_item_new_with_label(_("Options"));
1949 item_palette=gtk_menu_item_new_with_label(_("Set palette"));1970 item_palette=gtk_menu_item_new_with_label(_("Set palette"));
19501971
@@ -1994,8 +2015,10 @@
1994 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_tango), TRUE);2015 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_tango), TRUE);
1995 } else if (strcmp(cfgtmp, "xterm")==0) {2016 } else if (strcmp(cfgtmp, "xterm")==0) {
1996 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_xterm), TRUE);2017 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_xterm), TRUE);
1997 } else {2018 } else if (strcmp(cfgtmp, "rxvt")==0) {
1998 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_rxvt), TRUE);2019 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_rxvt), TRUE);
2020 } else {
2021 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_custom), TRUE);
1999 }2022 }
2000 g_free(cfgtmp);2023 g_free(cfgtmp);
20012024
@@ -2045,6 +2068,7 @@
2045 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_linux);2068 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_linux);
2046 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_xterm);2069 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_xterm);
2047 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_rxvt);2070 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_rxvt);
2071 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_custom);
2048 gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), gtk_separator_menu_item_new());2072 gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), gtk_separator_menu_item_new());
2049 gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_input_methods);2073 gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_input_methods);
20502074
@@ -2080,6 +2104,7 @@
2080 g_signal_connect(G_OBJECT(item_palette_linux), "activate", G_CALLBACK(sakura_set_palette), "linux");2104 g_signal_connect(G_OBJECT(item_palette_linux), "activate", G_CALLBACK(sakura_set_palette), "linux");
2081 g_signal_connect(G_OBJECT(item_palette_xterm), "activate", G_CALLBACK(sakura_set_palette), "xterm");2105 g_signal_connect(G_OBJECT(item_palette_xterm), "activate", G_CALLBACK(sakura_set_palette), "xterm");
2082 g_signal_connect(G_OBJECT(item_palette_rxvt), "activate", G_CALLBACK(sakura_set_palette), "rxvt");2106 g_signal_connect(G_OBJECT(item_palette_rxvt), "activate", G_CALLBACK(sakura_set_palette), "rxvt");
2107 g_signal_connect(G_OBJECT(item_palette_custom), "activate", G_CALLBACK(sakura_set_palette), "custom");
20832108
2084 g_signal_connect(G_OBJECT(action_open_link), "activate", G_CALLBACK(sakura_open_url), NULL);2109 g_signal_connect(G_OBJECT(action_open_link), "activate", G_CALLBACK(sakura_open_url), NULL);
2085 g_signal_connect(G_OBJECT(action_copy_link), "activate", G_CALLBACK(sakura_copy_url), NULL);2110 g_signal_connect(G_OBJECT(action_copy_link), "activate", G_CALLBACK(sakura_copy_url), NULL);
@@ -2501,7 +2526,7 @@
2501 vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), TRUE);2526 vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), TRUE);
2502 vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte),FALSE);2527 vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte),FALSE);
25032528
2504 sakura_set_config_string("background", infile);2529 sakura_set_config_string("background", infile, cfg_group);
2505 }2530 }
2506 }2531 }
2507}2532}

Subscribers

People subscribed via source and target branches