~ubuntu-core-dev/synaptic/ubuntu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/* rgconfigwindow.h
 *
 * Copyright (c) 2000, 2001 Conectiva S/A
 *
 * Author: Alfredo K. Kojima <kojima@conectiva.com.br>
 *
 * 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 2 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, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 * USA
 */

#include "rggladewindow.h"
#include "rgmainwindow.h"

class RGPreferencesWindow:public RGGladeWindow {
   bool _blockAction;

   enum {TREE_CHECKBOX_COLUMN, TREE_VISIBLE_NAME_COLUMN, TREE_NAME_COLUMN};

   struct column_struct {
      gboolean visible;
      const char *name;
      const char *visible_name;
   };

   // the names for the VisibleColumnsTreeView
   static const char *column_names[];
   static const char *column_visible_names[];
   static const gboolean column_visible_defaults[];

   RGMainWindow *_mainWin;
   RPackageLister *_lister;
   // option buttons
   GtkWidget *_optionShowAllPkgInfoInMain;
   GtkWidget *_optionUseStatusColors;
   GtkWidget *_optionAskRelated;
   GtkWidget *_optionUseTerminal;
   GtkWidget *_optionCheckRecom;
   GtkWidget *_optionAskQuit;
   GtkWidget *_optionOneClick;

   // cache settings
   GtkWidget *_cacheLeave;
   GtkWidget *_cacheClean;
   GtkWidget *_cacheAutoClean;

   GtkWidget *_delHistory;
   GtkWidget *_keepHistory;
   GtkWidget *_spinDelHistory;

   GtkWidget *_pathT;
   GtkWidget *_sizeT;
   GtkWidget *_maxUndoE;
   GtkWidget *_optionmenuDel;
   GtkWidget *_useProxy;

   // policy settings
   GtkWidget *_comboDefaultDistro;
   string _defaultDistro;

   bool _dirty;

   int columnPos[6];

   // distro selection
   static void cbArchiveSelection(GtkWidget *self, void *data);
   static void cbRadioDistributionChanged(GtkWidget *self, void *data);
   bool distroChanged;
   // the http proxy configuration
   static void cbHttpProxyEntryChanged(GtkWidget *self, void *data);

   // treeview stuff
   void readTreeViewValues();
   GtkListStore *_listColumns;
   GtkWidget *_treeView;
   static void cbMoveColumnUp(GtkWidget *self, void *data);
   static void cbMoveColumnDown(GtkWidget *self, void *data);
   static void cbToggleColumn(GtkWidget *self, char *path, void *data);

   // callbacks
   static void changeFontAction(GtkWidget *self, void *data);
   static void checkbuttonUserFontToggled(GtkWidget *self, void *data);
   static void checkbuttonUserTerminalFontToggled(GtkWidget *self,
                                                  void *data);

   static void saveAction(GtkWidget *self, void *data);
   void saveGeneral();
   void saveColumnsAndFonts();
   void saveColors();
   void saveFiles();
   void saveNetwork();
   void saveDistribution();

   void readGeneral();
   void readColumnsAndFonts();
   void readColors();
   void readFiles();
   void readNetwork();
   void readDistribution();


   static void closeAction(GtkWidget *self, void *data);
   static void doneAction(GtkWidget *self, void *data);
   static void clearCacheAction(GtkWidget *self, void *data);

   static void colorClicked(GtkWidget *self, void *data);
   static void buttonAuthenticationClicked(GtkWidget *self, void *data);

   static void useProxyToggled(GtkWidget *self, void *data);

 public:
   RGPreferencesWindow(RGWindow *owner, RPackageLister *lister);
   virtual ~RGPreferencesWindow() {};
   virtual void show();

   // call this to set the proxy stuff for apt
   static void applyProxySettings();
};