00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef YNCursesUI_h
00022 #define YNCursesUI_h
00023
00024 #include <iosfwd>
00025
00026 #include <Y2.h>
00027 #include "YUI.h"
00028 #include "NCurses.h"
00029
00030 class YUI;
00031 class NCDialog;
00032
00038 class YNCursesUI : public NCurses, public YUI
00039 {
00040 public:
00044 YNCursesUI( int argc, char ** argv, bool with_threads, const char * macro_file );
00045
00049 ~YNCursesUI();
00050
00051
00052 protected:
00053
00054 virtual bool want_colors();
00055 virtual void init_title();
00056
00060 static YNCursesUI * _ui;
00061
00062 public:
00063
00064
00065
00066
00070 static YNCursesUI * ui() { return _ui; }
00071
00075 virtual void idleLoop( int fd_ycp );
00076
00083 virtual YEvent * userInput( unsigned long timeout_millisec );
00084
00090 virtual YEvent * pollInput();
00091
00095 virtual YDialog * createDialog( YWidgetOpt & opt );
00096
00100 virtual void showDialog( YDialog * dialog );
00101
00105 virtual void closeDialog( YDialog * dialog );
00106
00107
00108
00109
00110
00114 virtual YContainerWidget * createSplit( YWidget * parent, YWidgetOpt & opt,
00115 YUIDimension dimension );
00116
00120 virtual YContainerWidget * createReplacePoint( YWidget * parent, YWidgetOpt & opt );
00121
00125 virtual YContainerWidget * createAlignment( YWidget * parent, YWidgetOpt & opt,
00126 YAlignmentType halign,
00127 YAlignmentType valign);
00128
00132 virtual YContainerWidget * createSquash( YWidget * parent, YWidgetOpt & opt,
00133 bool hsquash,
00134 bool vsquash );
00135
00139 virtual YContainerWidget * createRadioButtonGroup( YWidget * parent, YWidgetOpt & opt );
00140
00144 virtual YContainerWidget * createFrame( YWidget * parent, YWidgetOpt & opt,
00145 const YCPString & label );
00146
00147
00148
00149
00150
00154 virtual YWidget * createEmpty( YWidget * parent, YWidgetOpt & opt );
00155
00159 virtual YWidget * createSpacing( YWidget * parent, YWidgetOpt & opt,
00160 float size,
00161 bool horizontal,
00162 bool vertical );
00163
00170 virtual YWidget * createLabel( YWidget * parent, YWidgetOpt & opt,
00171 const YCPString & text );
00172
00177 virtual YWidget * createRichText( YWidget * parent, YWidgetOpt & opt,
00178 const YCPString & text );
00179
00186 virtual YWidget * createLogView( YWidget * parent, YWidgetOpt & opt,
00187 const YCPString & label,
00188 int visibleLines,
00189 int maxLines );
00190
00196 virtual YWidget * createMultiLineEdit( YWidget * parent, YWidgetOpt & opt,
00197 const YCPString & label,
00198 const YCPString & text);
00199
00205 virtual YWidget * createPushButton( YWidget * parent, YWidgetOpt & opt,
00206 const YCPString & label );
00207
00212 virtual YWidget * createMenuButton( YWidget * parent, YWidgetOpt & opt,
00213 const YCPString & label );
00214
00220 virtual YWidget * createRadioButton( YWidget * parent, YWidgetOpt & opt,
00221 YRadioButtonGroup * rbg,
00222 const YCPString & label,
00223 bool checked );
00224
00230 virtual YWidget * createCheckBox( YWidget * parent, YWidgetOpt & opt,
00231 const YCPString & label,
00232 bool checked );
00233
00237 virtual YWidget * createTextEntry( YWidget * parent, YWidgetOpt & opt,
00238 const YCPString & label,
00239 const YCPString & text );
00240
00244 virtual YWidget * createSelectionBox( YWidget * parent, YWidgetOpt & opt,
00245 const YCPString & label );
00246
00250 virtual YWidget * createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt,
00251 const YCPString & label );
00252
00256 virtual YWidget * createComboBox( YWidget * parent, YWidgetOpt & opt,
00257 const YCPString & label );
00258
00262 virtual YWidget * createTree( YWidget * parent, YWidgetOpt & opt,
00263 const YCPString & label );
00264
00268 virtual YWidget * createTable( YWidget * parent, YWidgetOpt & opt,
00269 vector<string> header );
00270
00274 virtual YWidget * createProgressBar( YWidget * parent, YWidgetOpt & opt,
00275 const YCPString & label,
00276 const YCPInteger & maxprogress,
00277 const YCPInteger & progress);
00278
00282 virtual YWidget * createImage( YWidget * parent, YWidgetOpt & opt,
00283 YCPByteblock imagedata,
00284 YCPString defaulttext);
00285
00289 virtual YWidget * createImage( YWidget * parent, YWidgetOpt & opt,
00290 YCPString filename,
00291 YCPString defaulttext);
00292
00296 virtual YWidget * createImage( YWidget * parent, YWidgetOpt & opt,
00297 ImageType img,
00298 YCPString defaulttext );
00299
00303 virtual YWidget * createIntField( YWidget * parent, YWidgetOpt & opt,
00304 const YCPString & label,
00305 int minValue, int maxValue,
00306 int initialValue );
00307
00311 virtual YWidget * createPackageSelector( YWidget *parent,
00312 YWidgetOpt &opt,
00313 const YCPString & floppyDevice );
00314
00318 virtual YCPValue runPkgSelection( YWidget * packageSelector );
00319
00323 virtual YWidget * createPkgSpecial( YWidget *parent,
00324 YWidgetOpt &opt,
00325 const YCPString &subwidget );
00326
00332 virtual YCPValue setLanguage( const YCPTerm & term );
00333
00338 virtual YCPValue setConsoleFont ( const YCPString & console_magic,
00339 const YCPString & font,
00340 const YCPString & screen_map,
00341 const YCPString & unicode_map,
00342 const YCPString & encoding );
00343
00344 virtual YCPValue setKeyboard ( );
00345
00359 virtual YCPValue askForExistingDirectory ( const YCPString & startDir,
00360 const YCPString & headline );
00361
00376 virtual YCPValue askForExistingFile ( const YCPString & startWith,
00377 const YCPString & filter,
00378 const YCPString & headline );
00379
00380
00396 virtual YCPValue askForSaveFileName ( const YCPString & startWith,
00397 const YCPString & filter,
00398 const YCPString & headline );
00399
00400
00405 virtual void redrawScreen() { Refresh(); }
00406
00411 virtual int getDisplayWidth() { return cols(); }
00412 virtual int getDisplayHeight() { return lines(); }
00413 virtual int getDisplayDepth() { return -1; }
00414 virtual long getDisplayColors() { return NCattribute::colors(); }
00415 virtual int getDefaultWidth() { return cols(); }
00416 virtual int getDefaultHeight() { return lines(); }
00417 virtual bool textMode() { return true; }
00418 virtual bool hasImageSupport() { return false; }
00419 virtual bool hasIconSupport() { return false; }
00420
00421 virtual bool hasFullUtf8Support();
00422
00423 private:
00424
00425 bool setLanguage( string lang );
00426 };
00427
00428 #endif // YNCursesUI_h
00429