00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef YUI_h
00023 #define YUI_h
00024
00025 #include <pthread.h>
00026 #include <deque>
00027 #include <ycp/YCPString.h>
00028 #include <ycp/YCPVoid.h>
00029 #include <ycp/YCPTerm.h>
00030 #include <ycp/YCPInteger.h>
00031 #include <ycp/YCPMap.h>
00032 #include <ycp/YCPBoolean.h>
00033 #include <ycp/YCPByteblock.h>
00034
00035 #include "YWidget.h"
00036 #include "YAlignment.h"
00037
00038
00039 using std::deque;
00040 using std::string;
00041
00042 class YContainerWidget;
00043 class YEvent;
00044 class YDialog;
00045 class YMacroPlayer;
00046 class YMacroRecorder;
00047 class YMenu;
00048 class YMenuButton;
00049 class YMultiSelectionBox;
00050 class YRadioButtonGroup;
00051 class YTree;
00052 class YTreeItem;
00053 class Y2Component;
00054
00055
00056 typedef struct
00057 {
00058 int red;
00059 int green;
00060 int blue;
00061 } YColor;
00062
00063 struct YUIBuiltinCallData
00064 {
00065 void * function;
00066 int argc;
00067 YCPValue * argv;
00068 YCPValue result;
00069
00070 YUIBuiltinCallData()
00071 : result( YCPVoid() )
00072 {
00073 function = 0;
00074 argc = 0;
00075 argv = 0;
00076 }
00077 };
00078
00079
00096 class YUI
00097 {
00098 protected:
00102 YUI( bool with_threads );
00103
00104
00105 public:
00106
00110 virtual ~YUI();
00111
00112
00116 static YUI * ui() { return _yui; }
00117
00118
00122 YDialog *currentDialog() const;
00123
00124
00133 virtual void blockEvents( bool block = true ) { _events_blocked = block; }
00134
00141 void unblockEvents() { blockEvents( false ); }
00142
00148 virtual bool eventsBlocked() const { return _events_blocked; }
00149
00154 void topmostConstructorHasFinished();
00155
00164 virtual void internalError( const char *msg );
00165
00169 static int Recode( const string & str,
00170 const string & from,
00171 const string & to,
00172 string & outstr );
00173
00177 int parseMenuItemList( const YCPList & itemList, YMenuButton *menu_button, YMenu *parentMenu = 0 );
00178
00182 bool parseRgb( const YCPValue & val, YColor *color, bool complain );
00183
00194 YWidget *createWidgetTree( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg, const YCPTerm & term );
00195
00199 YWidget *createWidgetTree( YWidget *parent, YRadioButtonGroup *rbg, const YCPTerm & term );
00200
00209 YWidget *widgetWithId( const YCPValue & id, bool log_error=false );
00210
00219 YWidget *widgetWithId( YContainerWidget *widgetRoot, const YCPValue & id, bool log_error=false );
00220
00226 int defaultFunctionKey( YCPString label );
00227
00235 string productName() const { return _productName; }
00236
00243 virtual long deviceUnits( YUIDimension dim, float layout_units );
00244
00251 virtual float layoutUnits( YUIDimension dim, long device_units );
00252
00257 static bool reverseLayout() { return _reverseLayout; }
00258
00262 static void setReverseLayout( bool rev ) { _reverseLayout = rev; }
00263
00269 YCPValue callBuiltin( void * function, int argc, YCPValue argv[] );
00270
00275 static YCPValue callFunction( void * function, int argc, YCPValue argv[] );
00276
00280 void setCallback( Y2Component * callback ) { _callback = callback; }
00281
00285 Y2Component * getCallback() const { return _callback; }
00286
00291 YCPValue evaluateAskForExistingDirectory ( const YCPString& startDir, const YCPString& headline );
00292 YCPValue evaluateAskForExistingFile ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00293 YCPValue evaluateAskForSaveFileName ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00294 void evaluateBusyCursor ();
00295 void evaluateBeep ();
00296 YCPValue evaluateChangeWidget ( const YCPValue & value_id, const YCPValue & property, const YCPValue & new_value );
00297 void evaluateCheckShortcuts ();
00298 YCPValue evaluateCollectUserInput ();
00299 YCPValue evaluateCollectUserInput ( const YCPTerm & widgetId );
00300 YCPValue evaluateCloseDialog ();
00301 void evaluateDumpWidgetTree ();
00302 void evaluateFakeUserInput ( const YCPValue & next_input );
00303 YCPMap evaluateGetDisplayInfo ();
00304 YCPString evaluateGetLanguage ( const YCPBoolean & strip_encoding );
00305 YCPValue evaluateGetModulename ( const YCPTerm & term );
00306 YCPString evaluateGetProductName ();
00307 YCPString evaluateGlyph ( const YCPSymbol & symbol );
00308 YCPValue evaluateHasSpecialWidget ( const YCPSymbol & widget );
00309 void evaluateMakeScreenShot ( const YCPString & filename );
00310 void evaluateNormalCursor ();
00311 YCPBoolean evaluateOpenDialog ( const YCPTerm & term, const YCPTerm & opts = YCPNull() );
00312 void evaluatePlayMacro ( const YCPString & filename );
00313 void evaluatePostponeShortcutCheck ();
00314 YCPValue evaluateQueryWidget ( const YCPValue& value_id, const YCPValue& property );
00315 void evaluateRecalcLayout ();
00316 YCPValue evaluateRecode ( const YCPString & from, const YCPString & to, const YCPString & text );
00317 void evaluateRecordMacro ( const YCPString & filename );
00318 void evaluateRedrawScreen ();
00319 YCPBoolean evaluateReplaceWidget ( const YCPValue & value_id, const YCPTerm & term );
00320 YCPValue evaluateRunPkgSelection ( const YCPValue & value_id );
00321 void evaluateSetConsoleFont ( const YCPString& magic,
00322 const YCPString& font,
00323 const YCPString& screen_map,
00324 const YCPString& unicode_map,
00325 const YCPString& encoding );
00326 void evaluateSetKeyboard ();
00327 YCPInteger evaluateRunInTerminal ( const YCPString& module);
00328 YCPBoolean evaluateSetFocus ( const YCPValue & value_id );
00329 void evaluateSetFunctionKeys ( const YCPMap & new_keys );
00330 void evaluateSetLanguage ( const YCPString& lang, const YCPString& encoding = YCPNull() );
00331 void evaluateSetModulename ( const YCPString & name );
00332 void evaluateSetProductName ( const YCPString & name );
00333 void evaluateStopRecordMacro ();
00334 YCPBoolean evaluateWidgetExists ( const YCPValue & value_id );
00335
00336 YCPValue evaluateUserInput ();
00337 YCPValue evaluateTimeoutUserInput ( const YCPInteger & timeout );
00338 YCPValue evaluateWaitForEvent ( const YCPInteger & timeout = YCPNull() );
00339 YCPValue evaluateWizardCommand ( const YCPTerm & command );
00340 YCPValue evaluatePollInput ();
00341
00350 void uiThreadMainLoop();
00351
00358 static bool checkId( const YCPValue & val, bool complain = true );
00359
00364 static YCPValue getId( const YCPValue & v );
00365
00366
00367 protected:
00368
00369
00370
00371
00372 const char *moduleName();
00373
00374
00375
00390 virtual void idleLoop( int fd_ycp );
00391
00410 virtual YEvent * userInput( unsigned long timeout_millisec = 0 ) = 0;
00411
00426 virtual YEvent * pollInput() = 0;
00427
00432 virtual void showDialog( YDialog *dialog );
00433
00439 virtual void closeDialog( YDialog *dialog );
00440
00441
00450 virtual YCPString glyph( const YCPSymbol & glyphSymbol ) { return YCPString( "" ); }
00451
00452
00453
00454
00455
00456
00461 virtual YDialog *createDialog( YWidgetOpt & opt ) = 0;
00462
00466 virtual YContainerWidget *createSplit( YWidget *parent, YWidgetOpt & opt, YUIDimension dimension ) = 0;
00467
00471 virtual YContainerWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt ) = 0;
00472
00476 virtual YContainerWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
00477 YAlignmentType halign,
00478 YAlignmentType valign ) = 0;
00479
00483 virtual YContainerWidget *createSquash( YWidget *parent, YWidgetOpt & opt, bool hsquash, bool vsquash ) = 0;
00484
00485
00489 virtual YContainerWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt ) = 0;
00490
00494 virtual YContainerWidget *createFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00495
00501 virtual YContainerWidget *createCheckBoxFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00502
00503
00504
00505
00506
00507
00511 virtual YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt ) = 0;
00512
00516 virtual YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt, float size, bool horizontal, bool vertical ) = 0;
00517
00524 virtual YWidget *createLabel( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00525
00526
00531 virtual YWidget *createRichText( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00532
00533
00540 virtual YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
00541 const YCPString & label, int visibleLines, int maxLines ) = 0;
00542
00547 virtual YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00548
00553 virtual YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00554
00560 virtual YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg,
00561 const YCPString & label, bool checked ) = 0;
00562
00568 virtual YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00569
00573 virtual YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00574
00578 virtual YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00579
00583 virtual YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00584
00588 virtual YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00589
00593 virtual YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00594
00598 virtual YWidget *createTree( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00599
00603 virtual YWidget *createTable( YWidget *parent, YWidgetOpt & opt, vector<string> header ) = 0;
00604
00608 virtual YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt, const YCPString & label,
00609 const YCPInteger & maxprogress, const YCPInteger & progress ) = 0;
00610
00614 virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPByteblock imagedata, YCPString defaulttext ) = 0;
00615
00619 virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPString file_name, YCPString defaulttext ) = 0;
00620
00624 virtual YWidget *createIntField( YWidget *parent, YWidgetOpt & opt,
00625 const YCPString & label, int minValue, int maxValue, int initialValue ) = 0;
00626
00633 virtual YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPString & floppyDevice ) = 0;
00634
00638 virtual YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPString & subwidget ) = 0;
00639
00640
00648 virtual YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt );
00649 virtual bool hasDummySpecialWidget() { return true; }
00650
00658 virtual YWidget * createDownloadProgress( YWidget *parent, YWidgetOpt & opt,
00659 const YCPString & label,
00660 const YCPString & filename,
00661 int expectedSize );
00662
00663 virtual bool hasDownloadProgress() { return false; }
00664
00672 virtual YWidget * createBarGraph( YWidget *parent, YWidgetOpt & opt );
00673 virtual bool hasBarGraph() { return false; }
00674
00682 virtual YWidget * createColoredLabel( YWidget *parent, YWidgetOpt & opt,
00683 YCPString label,
00684 YColor foreground, YColor background,
00685 int margin );
00686 virtual bool hasColoredLabel() { return false; }
00687
00688
00692 virtual YWidget * createDate( YWidget *parent,
00693 YWidgetOpt & opt,
00694 const YCPString & label,
00695 const YCPString & date );
00696 virtual bool hasDate() { return false; }
00697
00698
00702 virtual YWidget * createTime( YWidget *parent,
00703 YWidgetOpt & opt,
00704 const YCPString & label,
00705 const YCPString & time );
00706 virtual bool hasTime() { return false; }
00707
00708
00716 virtual YWidget * createDumbTab( YWidget *parent, YWidgetOpt & opt );
00717 virtual bool hasDumbTab() { return false; }
00718
00719
00727 virtual YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt,
00728 bool horizontal, const YCPList & maxValues );
00729 virtual bool hasMultiProgressMeter() { return false; }
00730
00731
00739 virtual YWidget * createSlider( YWidget * parent,
00740 YWidgetOpt & opt,
00741 const YCPString & label,
00742 int minValue,
00743 int maxValue,
00744 int initialValue );
00745 virtual bool hasSlider() { return false; }
00746
00768 virtual YWidget *createPartitionSplitter( YWidget * parent,
00769 YWidgetOpt & opt,
00770 int usedSize,
00771 int totalFreeSize,
00772 int newPartSize,
00773 int minNewPartSize,
00774 int minFreeSize,
00775 const YCPString & usedLabel,
00776 const YCPString & freeLabel,
00777 const YCPString & newPartLabel,
00778 const YCPString & freeFieldLabel,
00779 const YCPString & newPartFieldLabel );
00780
00781 virtual bool hasPartitionSplitter() { return false; }
00782
00786 virtual YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt );
00787
00788 virtual bool hasPatternSelector() { return false; }
00789
00790
00794 virtual YWidget *createSimplePatchSelector( YWidget *parent, YWidgetOpt & opt );
00795
00796 virtual bool hasSimplePatchSelector() { return false; }
00797
00798
00802 virtual YWidget *createWizard( YWidget *parent, YWidgetOpt & opt,
00803 const YCPValue & backButtonId, const YCPString & backButtonLabel,
00804 const YCPValue & abortButtonId, const YCPString & abortButtonLabel,
00805 const YCPValue & nextButtonId, const YCPString & nextButtonLabel );
00806
00807 virtual bool hasWizard() { return false; }
00808
00809
00815 virtual YCPValue setLanguage( const YCPTerm & term );
00816
00817
00823 virtual YCPValue setConsoleFont( const YCPString & console_magic,
00824 const YCPString & font,
00825 const YCPString & screen_map,
00826 const YCPString & unicode_map,
00827 const YCPString & encoding );
00828
00829 virtual YCPValue setKeyboard();
00830
00831
00838 virtual int runInTerminal( const YCPString & module );
00839
00844 virtual int getDisplayWidth() { return -1; }
00845 virtual int getDisplayHeight() { return -1; }
00846 virtual int getDisplayDepth() { return -1; }
00847 virtual long getDisplayColors() { return -1; }
00848 virtual int getDefaultWidth() { return -1; }
00849 virtual int getDefaultHeight() { return -1; }
00850 virtual bool textMode() { return true; }
00851 virtual bool hasImageSupport() { return false; }
00852 virtual bool hasLocalImageSupport() { return true; }
00853 virtual bool hasAnimationSupport() { return false; }
00854 virtual bool hasIconSupport() { return false; }
00855 virtual bool hasFullUtf8Support() { return false; }
00856 virtual bool richTextSupportsTable() { return false; }
00857 virtual bool leftHandedMouse() { return false; }
00858
00863 virtual void busyCursor();
00864
00869 virtual void normalCursor();
00870
00875 virtual void redrawScreen();
00876
00881 virtual void makeScreenShot( string filename );
00882
00889 virtual void beep();
00890
00897 virtual YCPValue runPkgSelection( YWidget * packageSelector ) { return YCPVoid(); }
00898
00899
00913 virtual YCPValue askForExistingDirectory( const YCPString & startDir,
00914 const YCPString & headline ) = 0;
00915
00931 virtual YCPValue askForExistingFile( const YCPString & startWith,
00932 const YCPString & filter,
00933 const YCPString & headline ) = 0;
00934
00951 virtual YCPValue askForSaveFileName( const YCPString & startWith,
00952 const YCPString & filter,
00953 const YCPString & headline ) = 0;
00954
00955
00956
00957 YCPValue callback ( const YCPValue & value );
00958
00962 YCPValue evaluateLocale( const YCPLocale & );
00963
00969 void recordMacro( string filename );
00970
00975 void stopRecordMacro();
00976
00981 void playMacro( string filename );
00982
00986 bool recordingMacro() { return macroRecorder != 0; }
00987
00991 bool playingMacro() { return macroPlayer != 0; }
00992
00993
00994 protected:
00999 void terminateUIThread();
01000
01001
01005 void createUIThread();
01006 friend void *start_ui_thread( void *ui_int );
01007
01012 void signalUIThread();
01013
01018 bool waitForUIThread();
01019
01024 void signalYCPThread();
01025
01030 bool waitForYCPThread();
01031
01035 YEvent * filterInvalidEvents( YEvent * event );
01036
01056 YCPValue doUserInput( const char * builtin_name,
01057 long timeout_millisec,
01058 bool wait,
01059 bool detailed );
01060
01061
01065 YCPValue evaluateCallback( const YCPTerm & term, bool to_wfm );
01066
01067
01081 YRadioButtonGroup *findRadioButtonGroup( YContainerWidget *root, YWidget *w, bool *contains );
01082
01083
01092 YWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt,
01093 const YCPTerm & term, const YCPList & optList, int argnr,
01094 YRadioButtonGroup *rbg );
01095
01096
01101 YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt,
01102 const YCPTerm & term, const YCPList & optList, int argnr,
01103 bool hstretchable, bool vstretchable );
01104
01111 YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt,
01112 const YCPTerm & term, const YCPList & optList, int argnr,
01113 bool horizontal, bool vertical );
01114
01119 YWidget *createFrame( YWidget *parent, YWidgetOpt & opt,
01120 const YCPTerm & term, const YCPList & optList, int argnr,
01121 YRadioButtonGroup *rbg );
01126 YWidget *createCheckBoxFrame( YWidget *parent, YWidgetOpt & opt,
01127 const YCPTerm & term, const YCPList & optList, int argnr,
01128 YRadioButtonGroup *rbg );
01129
01130
01136 YWidget *createWeight( YWidget *parent, YWidgetOpt & opt,
01137 const YCPTerm & term, const YCPList & optList, int argnr,
01138 YRadioButtonGroup *rbg, YUIDimension dim );
01139
01147 YWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
01148 const YCPTerm & term, const YCPList & optList, int argnr,
01149 YRadioButtonGroup *rbg,
01150 YAlignmentType halign, YAlignmentType valign );
01151
01156 YWidget *createMarginBox( YWidget * parent, YWidgetOpt & opt,
01157 const YCPTerm & term, const YCPList & optList,
01158 int argnr, YRadioButtonGroup * rbg );
01159
01167 YWidget *createMinSize( YWidget * parent, YWidgetOpt & opt,
01168 const YCPTerm & term, const YCPList & optList, int argnr,
01169 YRadioButtonGroup * rbg,
01170 bool hor, bool vert );
01171
01179 YWidget *createSquash( YWidget *parent, YWidgetOpt & opt,
01180 const YCPTerm & term, const YCPList & optList, int argnr,
01181 YRadioButtonGroup *rbg, bool hsquash, bool vsquash );
01182
01189 YWidget *createLBox( YWidget *parent, YWidgetOpt & opt,
01190 const YCPTerm & term, const YCPList & optList, int argnr,
01191 YRadioButtonGroup *rbg, YUIDimension dim );
01192
01199 YWidget *createLabel( YWidget *parent, YWidgetOpt & opt,
01200 const YCPTerm & term, const YCPList & optList, int argnr,
01201 bool heading );
01202
01203 YWidget *createDate( YWidget *parent, YWidgetOpt & opt,
01204 const YCPTerm & term, const YCPList & optList, int argnr);
01205
01206 YWidget *createTime( YWidget *parent, YWidgetOpt & opt,
01207 const YCPTerm & term, const YCPList & optList, int argnr);
01208
01213 YWidget *createRichText( YWidget *parent, YWidgetOpt & opt,
01214 const YCPTerm & term, const YCPList & optList, int argnr );
01215
01216
01221 YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
01222 const YCPTerm & term, const YCPList & optList, int argnr );
01223
01228 YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt,
01229 const YCPTerm & term, const YCPList & optList, int argnr,
01230 bool isIconButton );
01231
01236 YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt,
01237 const YCPTerm & term, const YCPList & optList, int argnr );
01238
01243 YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt,
01244 const YCPTerm & term, const YCPList & optList, int argnr );
01245
01250 YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt,
01251 const YCPTerm & term, const YCPList & optList, int argnr,
01252 YRadioButtonGroup *rbg );
01253
01258 YWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt,
01259 const YCPTerm & term, const YCPList & optList, int argnr,
01260 YRadioButtonGroup *rbg );
01261
01268 YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt,
01269 const YCPTerm & term, const YCPList & optList, int argnr,
01270 bool password );
01271
01276 YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt,
01277 const YCPTerm & term, const YCPList & optList, int argnr );
01278
01283 YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt,
01284 const YCPTerm & term, const YCPList & optList, int argnr );
01285
01290 YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt,
01291 const YCPTerm & term, const YCPList & optList, int argnr );
01292
01297 YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt,
01298 const YCPTerm & term, const YCPList & optList, int argnr );
01299
01304 YWidget *createTree( YWidget *parent, YWidgetOpt & opt,
01305 const YCPTerm & term, const YCPList & optList, int argnr );
01306
01311 YWidget *createTable( YWidget *parent, YWidgetOpt & opt,
01312 const YCPTerm & term, const YCPList & optList, int argnr );
01313
01318 YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt,
01319 const YCPTerm & term, const YCPList & optList, int argnr );
01320
01325 YWidget *createImage( YWidget *parent, YWidgetOpt & opt,
01326 const YCPTerm & term, const YCPList & optList, int argnr );
01327
01332 YWidget *createIntField( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01333 const YCPList & optList, int argnr );
01334
01339 YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01340 const YCPList & optList, int argnr );
01341
01346 YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01347 const YCPList & optList, int argnr );
01348
01353 YWidget *createWizard( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01354 const YCPList & optList, int argnr );
01355
01360 YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt,
01361 const YCPTerm & term, const YCPList & optList, int argnr );
01362
01367 YWidget *createDownloadProgress( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01368 const YCPList & optList, int argnr );
01369
01374 YWidget *createBarGraph( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01375 const YCPList & optList, int argnr );
01376
01381 YWidget *createColoredLabel( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01382 const YCPList & optList, int argnr );
01383
01388 YWidget *createDumbTab( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01389 const YCPList & optList, int argnr, YRadioButtonGroup * rbg );
01390
01395 YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01396 const YCPList & optList, int argnr, bool horizontal );
01401 YWidget *createSlider( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01402 const YCPList & optList, int argnr );
01403
01408 YWidget *createPartitionSplitter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01409 const YCPList & optList, int argnr );
01410
01415 YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01416 const YCPList & optList, int argnr );
01417
01422 YWidget *createSimplePatchSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01423 const YCPList & optList, int argnr );
01424
01425
01433 YCPValue getWidgetId( const YCPTerm & term, int *argnr );
01434
01446 YCPList getWidgetOptions( const YCPTerm & term, int *argnr );
01447
01453 void logUnknownOption( const YCPTerm & term, const YCPValue & option );
01454
01461 void rejectAllOptions( const YCPTerm & term, const YCPList & optList );
01462
01466 void registerDialog( YDialog * );
01467
01471 void removeDialog();
01472
01478 bool isSymbolOrId( const YCPValue & val ) const;
01479
01480
01484 void deleteMacroRecorder();
01485
01489 void deleteMacroPlayer();
01490
01494 void playNextMacroBlock();
01495
01499 typedef vector<YDialog *> dialogstack_type;
01500
01505 dialogstack_type dialogstack;
01506
01510 long long id_counter;
01511
01515 bool with_threads;
01516
01520 pthread_t ui_thread;
01521
01529 YUIBuiltinCallData _builtinCallData;
01530
01536 int pipe_to_ui[2];
01537
01543 int pipe_from_ui[2];
01544
01551 bool terminate_ui_thread;
01552
01556 string _moduleName;
01557
01561 string _productName;
01562
01566 YMacroRecorder *macroRecorder;
01567
01571 YMacroPlayer *macroPlayer;
01572
01576 deque<YCPValue> fakeUserInputQueue;
01577
01581 YCPMap default_fkeys;
01582
01587 bool _events_blocked;
01588
01593 static bool _reverseLayout;
01594
01598 Y2Component * _callback;
01599
01600
01604 static YUI * _yui;
01605
01606 };
01607
01608 #endif // YUI_h