00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef YUI_h
00021 #define YUI_h
00022
00023 #include <pthread.h>
00024 #include <deque>
00025 #include <ycp/YCPString.h>
00026 #include <ycp/YCPVoid.h>
00027 #include <ycp/YCPTerm.h>
00028 #include <ycp/YCPInteger.h>
00029 #include <ycp/YCPMap.h>
00030 #include <ycp/YCPBoolean.h>
00031 #include <ycp/YCPByteblock.h>
00032
00033 #include "YWidget.h"
00034 #include "YAlignment.h"
00035
00036
00037 using std::deque;
00038 using std::string;
00039
00040 class YContainerWidget;
00041 class YEvent;
00042 class YDialog;
00043 class YMacroPlayer;
00044 class YMacroRecorder;
00045 class YMenu;
00046 class YMenuButton;
00047 class YMultiSelectionBox;
00048 class YRadioButtonGroup;
00049 class YTree;
00050 class YTreeItem;
00051 class Y2Component;
00052
00053
00054 typedef struct
00055 {
00056 int red;
00057 int green;
00058 int blue;
00059 } YColor;
00060
00061 struct YUIBuiltinCallData
00062 {
00063 void * function;
00064 int argc;
00065 YCPValue * argv;
00066 YCPValue result;
00067
00068 YUIBuiltinCallData()
00069 : result( YCPVoid() )
00070 {
00071 function = 0;
00072 argc = 0;
00073 argv = 0;
00074 }
00075 };
00076
00077
00094 class YUI
00095 {
00096 protected:
00100 YUI( bool with_threads );
00101
00102
00103 public:
00104
00108 virtual ~YUI();
00109
00110
00114 static YUI * ui() { return _yui; }
00115
00116
00120 YDialog *currentDialog() const;
00121
00122
00131 virtual void blockEvents( bool block = true ) { _events_blocked = block; }
00132
00139 void unblockEvents() { blockEvents( false ); }
00140
00146 virtual bool eventsBlocked() const { return _events_blocked; }
00147
00152 void topmostConstructorHasFinished();
00153
00162 virtual void internalError( const char *msg );
00163
00167 static int Recode( const string & str,
00168 const string & from,
00169 const string & to,
00170 string & outstr );
00171
00175 int parseMenuItemList( const YCPList & itemList, YMenuButton *menu_button, YMenu *parentMenu = 0 );
00176
00180 bool parseRgb( const YCPValue & val, YColor *color, bool complain );
00181
00192 YWidget *createWidgetTree( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg, const YCPTerm & term );
00193
00197 YWidget *createWidgetTree( YWidget *parent, YRadioButtonGroup *rbg, const YCPTerm & term );
00198
00207 YWidget *widgetWithId( const YCPValue & id, bool log_error=false );
00208
00217 YWidget *widgetWithId( YContainerWidget *widgetRoot, const YCPValue & id, bool log_error=false );
00218
00224 int defaultFunctionKey( YCPString label );
00225
00233 string productName() const { return _productName; }
00234
00241 virtual long deviceUnits( YUIDimension dim, float layout_units );
00242
00249 virtual float layoutUnits( YUIDimension dim, long device_units );
00250
00255 static bool reverseLayout() { return _reverseLayout; }
00256
00260 static void setReverseLayout( bool rev ) { _reverseLayout = rev; }
00261
00267 YCPValue callBuiltin( void * function, int argc, YCPValue argv[] );
00268
00273 static YCPValue callFunction( void * function, int argc, YCPValue argv[] );
00274
00278 void setCallback( Y2Component * callback ) { _callback = callback; }
00279
00283 Y2Component * getCallback() const { return _callback; }
00284
00289 YCPValue evaluateAskForExistingDirectory ( const YCPString& startDir, const YCPString& headline );
00290 YCPValue evaluateAskForExistingFile ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00291 YCPValue evaluateAskForSaveFileName ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00292 void evaluateBusyCursor ();
00293 void evaluateBeep ();
00294 YCPValue evaluateChangeWidget ( const YCPValue & value_id, const YCPValue & property, const YCPValue & new_value );
00295 void evaluateCheckShortcuts ();
00296 YCPValue evaluateCollectUserInput ();
00297 YCPValue evaluateCollectUserInput ( const YCPTerm & widgetId );
00298 YCPValue evaluateCloseDialog ();
00299 void evaluateDumpWidgetTree ();
00300 void evaluateFakeUserInput ( const YCPValue & next_input );
00301 YCPMap evaluateGetDisplayInfo ();
00302 YCPString evaluateGetLanguage ( const YCPBoolean & strip_encoding );
00303 YCPValue evaluateGetModulename ( const YCPTerm & term );
00304 YCPString evaluateGetProductName ();
00305 YCPString evaluateGlyph ( const YCPSymbol & symbol );
00306 YCPValue evaluateHasSpecialWidget ( const YCPSymbol & widget );
00307 void evaluateMakeScreenShot ( const YCPString & filename );
00308 void evaluateNormalCursor ();
00309 YCPBoolean evaluateOpenDialog ( const YCPTerm & term, const YCPTerm & opts = YCPNull() );
00310 void evaluatePlayMacro ( const YCPString & filename );
00311 void evaluatePostponeShortcutCheck ();
00312 YCPValue evaluateQueryWidget ( const YCPValue& value_id, const YCPValue& property );
00313 void evaluateRecalcLayout ();
00314 YCPValue evaluateRecode ( const YCPString & from, const YCPString & to, const YCPString & text );
00315 void evaluateRecordMacro ( const YCPString & filename );
00316 void evaluateRedrawScreen ();
00317 YCPBoolean evaluateReplaceWidget ( const YCPValue & value_id, const YCPTerm & term );
00318 YCPValue evaluateRunPkgSelection ( const YCPValue & value_id );
00319 void evaluateSetConsoleFont ( const YCPString& magic,
00320 const YCPString& font,
00321 const YCPString& screen_map,
00322 const YCPString& unicode_map,
00323 const YCPString& encoding );
00324 void evaluateSetKeyboard ();
00325 YCPBoolean evaluateSetFocus ( const YCPValue & value_id );
00326 void evaluateSetFunctionKeys ( const YCPMap & new_keys );
00327 void evaluateSetLanguage ( const YCPString& lang, const YCPString& encoding = YCPNull() );
00328 void evaluateSetModulename ( const YCPString & name );
00329 void evaluateSetProductName ( const YCPString & name );
00330 void evaluateStopRecordMacro ();
00331 YCPBoolean evaluateWidgetExists ( const YCPValue & value_id );
00332
00333 YCPValue evaluateUserInput ();
00334 YCPValue evaluateTimeoutUserInput ( const YCPInteger & timeout );
00335 YCPValue evaluateWaitForEvent ( const YCPInteger & timeout = YCPNull() );
00336 YCPValue evaluateWizardCommand ( const YCPTerm & command );
00337 YCPValue evaluatePollInput ();
00338
00347 void uiThreadMainLoop();
00348
00355 static bool checkId( const YCPValue & val, bool complain = true );
00356
00361 static YCPValue getId( const YCPValue & v );
00362
00363
00364 protected:
00365
00366
00367
00368
00369 const char *moduleName();
00370
00371
00372
00387 virtual void idleLoop( int fd_ycp );
00388
00407 virtual YEvent * userInput( unsigned long timeout_millisec = 0 ) = 0;
00408
00423 virtual YEvent * pollInput() = 0;
00424
00429 virtual void showDialog( YDialog *dialog );
00430
00436 virtual void closeDialog( YDialog *dialog );
00437
00438
00447 virtual YCPString glyph( const YCPSymbol & glyphSymbol ) { return YCPString( "" ); }
00448
00449
00450
00451
00452
00453
00458 virtual YDialog *createDialog( YWidgetOpt & opt ) = 0;
00459
00463 virtual YContainerWidget *createSplit( YWidget *parent, YWidgetOpt & opt, YUIDimension dimension ) = 0;
00464
00468 virtual YContainerWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt ) = 0;
00469
00473 virtual YContainerWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
00474 YAlignmentType halign,
00475 YAlignmentType valign ) = 0;
00476
00480 virtual YContainerWidget *createSquash( YWidget *parent, YWidgetOpt & opt, bool hsquash, bool vsquash ) = 0;
00481
00482
00486 virtual YContainerWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt ) = 0;
00487
00491 virtual YContainerWidget *createFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00492
00493
00494
00495
00496
00497
00498
00502 virtual YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt ) = 0;
00503
00507 virtual YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt, float size, bool horizontal, bool vertical ) = 0;
00508
00515 virtual YWidget *createLabel( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00516
00517
00522 virtual YWidget *createRichText( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00523
00524
00531 virtual YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
00532 const YCPString & label, int visibleLines, int maxLines ) = 0;
00533
00538 virtual YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00539
00544 virtual YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00545
00551 virtual YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg,
00552 const YCPString & label, bool checked ) = 0;
00553
00559 virtual YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00560
00564 virtual YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00565
00569 virtual YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00570
00574 virtual YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00575
00579 virtual YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00580
00584 virtual YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00585
00589 virtual YWidget *createTree( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00590
00594 virtual YWidget *createTable( YWidget *parent, YWidgetOpt & opt, vector<string> header ) = 0;
00595
00599 virtual YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt, const YCPString & label,
00600 const YCPInteger & maxprogress, const YCPInteger & progress ) = 0;
00601
00605 virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPByteblock imagedata, YCPString defaulttext ) = 0;
00606
00610 virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPString file_name, YCPString defaulttext ) = 0;
00611
00615 virtual YWidget *createIntField( YWidget *parent, YWidgetOpt & opt,
00616 const YCPString & label, int minValue, int maxValue, int initialValue ) = 0;
00617
00624 virtual YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPString & floppyDevice ) = 0;
00625
00629 virtual YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPString & subwidget ) = 0;
00630
00631
00639 virtual YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt );
00640 virtual bool hasDummySpecialWidget() { return true; }
00641
00649 virtual YWidget * createDownloadProgress( YWidget *parent, YWidgetOpt & opt,
00650 const YCPString & label,
00651 const YCPString & filename,
00652 int expectedSize );
00653
00654 virtual bool hasDownloadProgress() { return false; }
00655
00663 virtual YWidget * createBarGraph( YWidget *parent, YWidgetOpt & opt );
00664 virtual bool hasBarGraph() { return false; }
00665
00673 virtual YWidget * createColoredLabel( YWidget *parent, YWidgetOpt & opt,
00674 YCPString label,
00675 YColor foreground, YColor background,
00676 int margin );
00677 virtual bool hasColoredLabel() { return false; }
00678
00679
00683 virtual YWidget * createDate( YWidget *parent,
00684 YWidgetOpt & opt,
00685 const YCPString & label,
00686 const YCPString & date );
00687 virtual bool hasDate() { return false; }
00688
00689
00693 virtual YWidget * createTime( YWidget *parent,
00694 YWidgetOpt & opt,
00695 const YCPString & label,
00696 const YCPString & time );
00697 virtual bool hasTime() { return false; }
00698
00699
00707 virtual YWidget * createDumbTab( YWidget *parent, YWidgetOpt & opt );
00708 virtual bool hasDumbTab() { return false; }
00709
00710
00718 virtual YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt,
00719 bool horizontal, const YCPList & maxValues );
00720 virtual bool hasMultiProgressMeter() { return false; }
00721
00722
00730 virtual YWidget * createSlider( YWidget * parent,
00731 YWidgetOpt & opt,
00732 const YCPString & label,
00733 int minValue,
00734 int maxValue,
00735 int initialValue );
00736 virtual bool hasSlider() { return false; }
00737
00759 virtual YWidget *createPartitionSplitter( YWidget * parent,
00760 YWidgetOpt & opt,
00761 int usedSize,
00762 int totalFreeSize,
00763 int newPartSize,
00764 int minNewPartSize,
00765 int minFreeSize,
00766 const YCPString & usedLabel,
00767 const YCPString & freeLabel,
00768 const YCPString & newPartLabel,
00769 const YCPString & freeFieldLabel,
00770 const YCPString & newPartFieldLabel );
00771
00772 virtual bool hasPartitionSplitter() { return false; }
00773
00777 virtual YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt );
00778
00779 virtual bool hasPatternSelector() { return false; }
00780
00781
00785 virtual YWidget *createWizard( YWidget *parent, YWidgetOpt & opt,
00786 const YCPValue & backButtonId, const YCPString & backButtonLabel,
00787 const YCPValue & abortButtonId, const YCPString & abortButtonLabel,
00788 const YCPValue & nextButtonId, const YCPString & nextButtonLabel );
00789
00790 virtual bool hasWizard() { return false; }
00791
00792
00798 virtual YCPValue setLanguage( const YCPTerm & term );
00799
00800
00806 virtual YCPValue setConsoleFont( const YCPString & console_magic,
00807 const YCPString & font,
00808 const YCPString & screen_map,
00809 const YCPString & unicode_map,
00810 const YCPString & encoding );
00811
00812 virtual YCPValue setKeyboard();
00813
00818 virtual int getDisplayWidth() { return -1; }
00819 virtual int getDisplayHeight() { return -1; }
00820 virtual int getDisplayDepth() { return -1; }
00821 virtual long getDisplayColors() { return -1; }
00822 virtual int getDefaultWidth() { return -1; }
00823 virtual int getDefaultHeight() { return -1; }
00824 virtual bool textMode() { return true; }
00825 virtual bool hasImageSupport() { return false; }
00826 virtual bool hasLocalImageSupport() { return true; }
00827 virtual bool hasAnimationSupport() { return false; }
00828 virtual bool hasIconSupport() { return false; }
00829 virtual bool hasFullUtf8Support() { return false; }
00830 virtual bool richTextSupportsTable() { return false; }
00831 virtual bool leftHandedMouse() { return false; }
00832
00837 virtual void busyCursor();
00838
00843 virtual void normalCursor();
00844
00849 virtual void redrawScreen();
00850
00855 virtual void makeScreenShot( string filename );
00856
00863 virtual void beep();
00864
00871 virtual YCPValue runPkgSelection( YWidget * packageSelector ) { return YCPVoid(); }
00872
00873
00887 virtual YCPValue askForExistingDirectory( const YCPString & startDir,
00888 const YCPString & headline ) = 0;
00889
00905 virtual YCPValue askForExistingFile( const YCPString & startWith,
00906 const YCPString & filter,
00907 const YCPString & headline ) = 0;
00908
00925 virtual YCPValue askForSaveFileName( const YCPString & startWith,
00926 const YCPString & filter,
00927 const YCPString & headline ) = 0;
00928
00929
00930
00931 YCPValue callback ( const YCPValue & value );
00932
00936 YCPValue evaluateLocale( const YCPLocale & );
00937
00943 void recordMacro( string filename );
00944
00949 void stopRecordMacro();
00950
00955 void playMacro( string filename );
00956
00960 bool recordingMacro() { return macroRecorder != 0; }
00961
00965 bool playingMacro() { return macroPlayer != 0; }
00966
00967
00968 protected:
00973 void terminateUIThread();
00974
00975
00979 void createUIThread();
00980 friend void *start_ui_thread( void *ui_int );
00981
00986 void signalUIThread();
00987
00992 bool waitForUIThread();
00993
00998 void signalYCPThread();
00999
01004 bool waitForYCPThread();
01005
01009 YEvent * filterInvalidEvents( YEvent * event );
01010
01030 YCPValue doUserInput( const char * builtin_name,
01031 long timeout_millisec,
01032 bool wait,
01033 bool detailed );
01034
01035
01039 YCPValue evaluateCallback( const YCPTerm & term, bool to_wfm );
01040
01041
01055 YRadioButtonGroup *findRadioButtonGroup( YContainerWidget *root, YWidget *w, bool *contains );
01056
01057
01066 YWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt,
01067 const YCPTerm & term, const YCPList & optList, int argnr,
01068 YRadioButtonGroup *rbg );
01069
01070
01075 YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt,
01076 const YCPTerm & term, const YCPList & optList, int argnr,
01077 bool hstretchable, bool vstretchable );
01078
01085 YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt,
01086 const YCPTerm & term, const YCPList & optList, int argnr,
01087 bool horizontal, bool vertical );
01088
01093 YWidget *createFrame( YWidget *parent, YWidgetOpt & opt,
01094 const YCPTerm & term, const YCPList & optList, int argnr,
01095 YRadioButtonGroup *rbg );
01096
01102 YWidget *createWeight( YWidget *parent, YWidgetOpt & opt,
01103 const YCPTerm & term, const YCPList & optList, int argnr,
01104 YRadioButtonGroup *rbg, YUIDimension dim );
01105
01113 YWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
01114 const YCPTerm & term, const YCPList & optList, int argnr,
01115 YRadioButtonGroup *rbg,
01116 YAlignmentType halign, YAlignmentType valign );
01117
01122 YWidget *createMarginBox( YWidget * parent, YWidgetOpt & opt,
01123 const YCPTerm & term, const YCPList & optList,
01124 int argnr, YRadioButtonGroup * rbg );
01125
01133 YWidget *createMinSize( YWidget * parent, YWidgetOpt & opt,
01134 const YCPTerm & term, const YCPList & optList, int argnr,
01135 YRadioButtonGroup * rbg,
01136 bool hor, bool vert );
01137
01145 YWidget *createSquash( YWidget *parent, YWidgetOpt & opt,
01146 const YCPTerm & term, const YCPList & optList, int argnr,
01147 YRadioButtonGroup *rbg, bool hsquash, bool vsquash );
01148
01155 YWidget *createLBox( YWidget *parent, YWidgetOpt & opt,
01156 const YCPTerm & term, const YCPList & optList, int argnr,
01157 YRadioButtonGroup *rbg, YUIDimension dim );
01158
01165 YWidget *createLabel( YWidget *parent, YWidgetOpt & opt,
01166 const YCPTerm & term, const YCPList & optList, int argnr,
01167 bool heading );
01168
01169 YWidget *createDate( YWidget *parent, YWidgetOpt & opt,
01170 const YCPTerm & term, const YCPList & optList, int argnr);
01171
01172 YWidget *createTime( YWidget *parent, YWidgetOpt & opt,
01173 const YCPTerm & term, const YCPList & optList, int argnr);
01174
01179 YWidget *createRichText( YWidget *parent, YWidgetOpt & opt,
01180 const YCPTerm & term, const YCPList & optList, int argnr );
01181
01182
01187 YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
01188 const YCPTerm & term, const YCPList & optList, int argnr );
01189
01194 YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt,
01195 const YCPTerm & term, const YCPList & optList, int argnr,
01196 bool isIconButton );
01197
01202 YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt,
01203 const YCPTerm & term, const YCPList & optList, int argnr );
01204
01209 YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt,
01210 const YCPTerm & term, const YCPList & optList, int argnr );
01211
01216 YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt,
01217 const YCPTerm & term, const YCPList & optList, int argnr,
01218 YRadioButtonGroup *rbg );
01219
01224 YWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt,
01225 const YCPTerm & term, const YCPList & optList, int argnr,
01226 YRadioButtonGroup *rbg );
01227
01234 YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt,
01235 const YCPTerm & term, const YCPList & optList, int argnr,
01236 bool password );
01237
01242 YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt,
01243 const YCPTerm & term, const YCPList & optList, int argnr );
01244
01249 YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt,
01250 const YCPTerm & term, const YCPList & optList, int argnr );
01251
01256 YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt,
01257 const YCPTerm & term, const YCPList & optList, int argnr );
01258
01263 YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt,
01264 const YCPTerm & term, const YCPList & optList, int argnr );
01265
01270 YWidget *createTree( YWidget *parent, YWidgetOpt & opt,
01271 const YCPTerm & term, const YCPList & optList, int argnr );
01272
01277 YWidget *createTable( YWidget *parent, YWidgetOpt & opt,
01278 const YCPTerm & term, const YCPList & optList, int argnr );
01279
01284 YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt,
01285 const YCPTerm & term, const YCPList & optList, int argnr );
01286
01291 YWidget *createImage( YWidget *parent, YWidgetOpt & opt,
01292 const YCPTerm & term, const YCPList & optList, int argnr );
01293
01298 YWidget *createIntField( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01299 const YCPList & optList, int argnr );
01300
01305 YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01306 const YCPList & optList, int argnr );
01307
01312 YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01313 const YCPList & optList, int argnr );
01314
01319 YWidget *createWizard( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01320 const YCPList & optList, int argnr );
01321
01326 YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt,
01327 const YCPTerm & term, const YCPList & optList, int argnr );
01328
01333 YWidget *createDownloadProgress( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01334 const YCPList & optList, int argnr );
01335
01340 YWidget *createBarGraph( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01341 const YCPList & optList, int argnr );
01342
01347 YWidget *createColoredLabel( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01348 const YCPList & optList, int argnr );
01349
01354 YWidget *createDumbTab( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01355 const YCPList & optList, int argnr, YRadioButtonGroup * rbg );
01356
01361 YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01362 const YCPList & optList, int argnr, bool horizontal );
01367 YWidget *createSlider( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01368 const YCPList & optList, int argnr );
01369
01374 YWidget *createPartitionSplitter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01375 const YCPList & optList, int argnr );
01376
01381 YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01382 const YCPList & optList, int argnr );
01383
01384
01392 YCPValue getWidgetId( const YCPTerm & term, int *argnr );
01393
01405 YCPList getWidgetOptions( const YCPTerm & term, int *argnr );
01406
01412 void logUnknownOption( const YCPTerm & term, const YCPValue & option );
01413
01420 void rejectAllOptions( const YCPTerm & term, const YCPList & optList );
01421
01425 void registerDialog( YDialog * );
01426
01430 void removeDialog();
01431
01437 bool isSymbolOrId( const YCPValue & val ) const;
01438
01439
01443 void deleteMacroRecorder();
01444
01448 void deleteMacroPlayer();
01449
01453 void playNextMacroBlock();
01454
01458 typedef vector<YDialog *> dialogstack_type;
01459
01464 dialogstack_type dialogstack;
01465
01469 long long id_counter;
01470
01474 bool with_threads;
01475
01479 pthread_t ui_thread;
01480
01488 YUIBuiltinCallData _builtinCallData;
01489
01495 int pipe_to_ui[2];
01496
01502 int pipe_from_ui[2];
01503
01510 bool terminate_ui_thread;
01511
01515 string _moduleName;
01516
01520 string _productName;
01521
01525 YMacroRecorder *macroRecorder;
01526
01530 YMacroPlayer *macroPlayer;
01531
01535 deque<YCPValue> fakeUserInputQueue;
01536
01540 YCPMap default_fkeys;
01541
01546 bool _events_blocked;
01547
01552 static bool _reverseLayout;
01553
01557 Y2Component * _callback;
01558
01559
01563 static YUI * _yui;
01564
01565 };
01566
01567 #endif // YUI_h