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 YCPValue evaluateChangeWidget ( const YCPValue & value_id, const YCPValue & property, const YCPValue & new_value );
00294 void evaluateCheckShortcuts ();
00295 YCPValue evaluateCollectUserInput ();
00296 YCPValue evaluateCollectUserInput ( const YCPTerm & widgetId );
00297 YCPValue evaluateCloseDialog ();
00298 void evaluateDumpWidgetTree ();
00299 void evaluateFakeUserInput ( const YCPValue & next_input );
00300 YCPMap evaluateGetDisplayInfo ();
00301 YCPString evaluateGetLanguage ( const YCPBoolean & strip_encoding );
00302 YCPValue evaluateGetModulename ( const YCPTerm & term );
00303 YCPString evaluateGetProductName ();
00304 YCPString evaluateGlyph ( const YCPSymbol & symbol );
00305 YCPValue evaluateHasSpecialWidget ( const YCPSymbol & widget );
00306 void evaluateMakeScreenShot ( const YCPString & filename );
00307 void evaluateNormalCursor ();
00308 YCPBoolean evaluateOpenDialog ( const YCPTerm & term, const YCPTerm & term = YCPNull() );
00309 void evaluatePlayMacro ( const YCPString & filename );
00310 void evaluatePostponeShortcutCheck ();
00311 YCPValue evaluateQueryWidget ( const YCPValue& value_id, const YCPValue& property );
00312 void evaluateRecalcLayout ();
00313 YCPValue evaluateRecode ( const YCPString & from, const YCPString & to, const YCPString & text );
00314 void evaluateRecordMacro ( const YCPString & filename );
00315 void evaluateRedrawScreen ();
00316 YCPBoolean evaluateReplaceWidget ( const YCPValue & value_id, const YCPTerm & term );
00317 YCPValue evaluateRunPkgSelection ( const YCPValue & value_id );
00318 void evaluateSetConsoleFont ( const YCPString& magic,
00319 const YCPString& font,
00320 const YCPString& screen_map,
00321 const YCPString& unicode_map,
00322 const YCPString& encoding );
00323 void evaluateSetKeyboard ();
00324 YCPBoolean evaluateSetFocus ( const YCPValue & value_id );
00325 void evaluateSetFunctionKeys ( const YCPMap & new_keys );
00326 void evaluateSetLanguage ( const YCPString& lang, const YCPString& encoding = YCPNull() );
00327 void evaluateSetModulename ( const YCPString & name );
00328 void evaluateSetProductName ( const YCPString & name );
00329 void evaluateStopRecordMacro ();
00330 YCPBoolean evaluateWidgetExists ( const YCPValue & value_id );
00331
00332 YCPValue evaluateUserInput ();
00333 YCPValue evaluateTimeoutUserInput ( const YCPInteger & timeout );
00334 YCPValue evaluateWaitForEvent ( const YCPInteger & timeout = YCPNull() );
00335 YCPValue evaluateWizardCommand ( const YCPTerm & command );
00336 YCPValue evaluatePollInput ();
00337
00346 void uiThreadMainLoop();
00347
00354 static bool checkId( const YCPValue & val, bool complain = true );
00355
00360 static YCPValue getId( const YCPValue & v );
00361
00362
00363 protected:
00364
00365
00366
00367
00368 const char *moduleName();
00369
00370
00371
00386 virtual void idleLoop( int fd_ycp );
00387
00406 virtual YEvent * userInput( unsigned long timeout_millisec = 0 ) = 0;
00407
00422 virtual YEvent * pollInput() = 0;
00423
00428 virtual void showDialog( YDialog *dialog );
00429
00435 virtual void closeDialog( YDialog *dialog );
00436
00437
00446 virtual YCPString glyph( const YCPSymbol & glyphSymbol ) { return YCPString( "" ); }
00447
00448
00449
00450
00451
00452
00457 virtual YDialog *createDialog( YWidgetOpt & opt ) = 0;
00458
00462 virtual YContainerWidget *createSplit( YWidget *parent, YWidgetOpt & opt, YUIDimension dimension ) = 0;
00463
00467 virtual YContainerWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt ) = 0;
00468
00472 virtual YContainerWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
00473 YAlignmentType halign,
00474 YAlignmentType valign ) = 0;
00475
00479 virtual YContainerWidget *createSquash( YWidget *parent, YWidgetOpt & opt, bool hsquash, bool vsquash ) = 0;
00480
00481
00485 virtual YContainerWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt ) = 0;
00486
00490 virtual YContainerWidget *createFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00491
00492
00493
00494
00495
00496
00497
00501 virtual YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt ) = 0;
00502
00506 virtual YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt, float size, bool horizontal, bool vertical ) = 0;
00507
00514 virtual YWidget *createLabel( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00515
00516
00521 virtual YWidget *createRichText( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00522
00523
00530 virtual YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
00531 const YCPString & label, int visibleLines, int maxLines ) = 0;
00532
00537 virtual YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00538
00543 virtual YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00544
00550 virtual YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg,
00551 const YCPString & label, bool checked ) = 0;
00552
00558 virtual YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00559
00563 virtual YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00564
00568 virtual YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00569
00573 virtual YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00574
00578 virtual YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00579
00583 virtual YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00584
00588 virtual YWidget *createTree( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00589
00593 virtual YWidget *createTable( YWidget *parent, YWidgetOpt & opt, vector<string> header ) = 0;
00594
00598 virtual YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt, const YCPString & label,
00599 const YCPInteger & maxprogress, const YCPInteger & progress ) = 0;
00600
00604 virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPByteblock imagedata, YCPString defaulttext ) = 0;
00605
00609 virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPString file_name, YCPString defaulttext ) = 0;
00610
00614 virtual YWidget *createIntField( YWidget *parent, YWidgetOpt & opt,
00615 const YCPString & label, int minValue, int maxValue, int initialValue ) = 0;
00616
00623 virtual YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPString & floppyDevice ) = 0;
00624
00628 virtual YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPString & subwidget ) = 0;
00629
00630
00638 virtual YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt );
00639 virtual bool hasDummySpecialWidget() { return true; }
00640
00648 virtual YWidget * createDownloadProgress( YWidget *parent, YWidgetOpt & opt,
00649 const YCPString & label,
00650 const YCPString & filename,
00651 int expectedSize );
00652
00653 virtual bool hasDownloadProgress() { return false; }
00654
00662 virtual YWidget * createBarGraph( YWidget *parent, YWidgetOpt & opt );
00663 virtual bool hasBarGraph() { return false; }
00664
00672 virtual YWidget * createColoredLabel( YWidget *parent, YWidgetOpt & opt,
00673 YCPString label,
00674 YColor foreground, YColor background,
00675 int margin );
00676 virtual bool hasColoredLabel() { return false; }
00677
00678
00682 virtual YWidget * createDate( YWidget *parent,
00683 YWidgetOpt & opt,
00684 const YCPString & label,
00685 const YCPString & date );
00686 virtual bool hasDate() { return false; }
00687
00688
00692 virtual YWidget * createTime( YWidget *parent,
00693 YWidgetOpt & opt,
00694 const YCPString & label,
00695 const YCPString & time );
00696 virtual bool hasTime() { return false; }
00697
00698
00706 virtual YWidget * createDumbTab( YWidget *parent, YWidgetOpt & opt );
00707 virtual bool hasDumbTab() { return false; }
00708
00709
00717 virtual YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt,
00718 bool horizontal, const YCPList & maxValues );
00719 virtual bool hasMultiProgressMeter() { return false; }
00720
00721
00729 virtual YWidget * createSlider( YWidget * parent,
00730 YWidgetOpt & opt,
00731 const YCPString & label,
00732 int minValue,
00733 int maxValue,
00734 int initialValue );
00735 virtual bool hasSlider() { return false; }
00736
00758 virtual YWidget *createPartitionSplitter( YWidget * parent,
00759 YWidgetOpt & opt,
00760 int usedSize,
00761 int totalFreeSize,
00762 int newPartSize,
00763 int minNewPartSize,
00764 int minFreeSize,
00765 const YCPString & usedLabel,
00766 const YCPString & freeLabel,
00767 const YCPString & newPartLabel,
00768 const YCPString & freeFieldLabel,
00769 const YCPString & newPartFieldLabel );
00770
00771 virtual bool hasPartitionSplitter() { return false; }
00772
00776 virtual YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt );
00777
00778 virtual bool hasPatternSelector() { return false; }
00779
00780
00784 virtual YWidget *createWizard( YWidget *parent, YWidgetOpt & opt,
00785 const YCPValue & backButtonId, const YCPString & backButtonLabel,
00786 const YCPValue & abortButtonId, const YCPString & abortButtonLabel,
00787 const YCPValue & nextButtonId, const YCPString & nextButtonLabel );
00788
00789 virtual bool hasWizard() { return false; }
00790
00791
00797 virtual YCPValue setLanguage( const YCPTerm & term );
00798
00799
00805 virtual YCPValue setConsoleFont( const YCPString & console_magic,
00806 const YCPString & font,
00807 const YCPString & screen_map,
00808 const YCPString & unicode_map,
00809 const YCPString & encoding );
00810
00811 virtual YCPValue setKeyboard();
00812
00817 virtual int getDisplayWidth() { return -1; }
00818 virtual int getDisplayHeight() { return -1; }
00819 virtual int getDisplayDepth() { return -1; }
00820 virtual long getDisplayColors() { return -1; }
00821 virtual int getDefaultWidth() { return -1; }
00822 virtual int getDefaultHeight() { return -1; }
00823 virtual bool textMode() { return true; }
00824 virtual bool hasImageSupport() { return false; }
00825 virtual bool hasLocalImageSupport() { return true; }
00826 virtual bool hasAnimationSupport() { return false; }
00827 virtual bool hasIconSupport() { return false; }
00828 virtual bool hasFullUtf8Support() { return false; }
00829 virtual bool richTextSupportsTable() { return false; }
00830 virtual bool leftHandedMouse() { return false; }
00831
00836 virtual void busyCursor();
00837
00842 virtual void normalCursor();
00843
00848 virtual void redrawScreen();
00849
00854 virtual void makeScreenShot( string filename );
00855
00856
00863 virtual YCPValue runPkgSelection( YWidget * packageSelector ) { return YCPVoid(); }
00864
00865
00879 virtual YCPValue askForExistingDirectory( const YCPString & startDir,
00880 const YCPString & headline ) = 0;
00881
00897 virtual YCPValue askForExistingFile( const YCPString & startWith,
00898 const YCPString & filter,
00899 const YCPString & headline ) = 0;
00900
00917 virtual YCPValue askForSaveFileName( const YCPString & startWith,
00918 const YCPString & filter,
00919 const YCPString & headline ) = 0;
00920
00921
00922
00923 YCPValue callback ( const YCPValue & value );
00924
00928 YCPValue evaluateLocale( const YCPLocale & );
00929
00935 void recordMacro( string filename );
00936
00941 void stopRecordMacro();
00942
00947 void playMacro( string filename );
00948
00952 bool recordingMacro() { return macroRecorder != 0; }
00953
00957 bool playingMacro() { return macroPlayer != 0; }
00958
00959
00960 protected:
00965 void terminateUIThread();
00966
00967
00971 void createUIThread();
00972 friend void *start_ui_thread( void *ui_int );
00973
00978 void signalUIThread();
00979
00984 bool waitForUIThread();
00985
00990 void signalYCPThread();
00991
00996 bool waitForYCPThread();
00997
01001 YEvent * filterInvalidEvents( YEvent * event );
01002
01022 YCPValue doUserInput( const char * builtin_name,
01023 long timeout_millisec,
01024 bool wait,
01025 bool detailed );
01026
01027
01031 YCPValue evaluateCallback( const YCPTerm & term, bool to_wfm );
01032
01033
01047 YRadioButtonGroup *findRadioButtonGroup( YContainerWidget *root, YWidget *w, bool *contains );
01048
01049
01058 YWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt,
01059 const YCPTerm & term, const YCPList & optList, int argnr,
01060 YRadioButtonGroup *rbg );
01061
01062
01067 YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt,
01068 const YCPTerm & term, const YCPList & optList, int argnr,
01069 bool hstretchable, bool vstretchable );
01070
01077 YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt,
01078 const YCPTerm & term, const YCPList & optList, int argnr,
01079 bool horizontal, bool vertical );
01080
01085 YWidget *createFrame( YWidget *parent, YWidgetOpt & opt,
01086 const YCPTerm & term, const YCPList & optList, int argnr,
01087 YRadioButtonGroup *rbg );
01088
01094 YWidget *createWeight( YWidget *parent, YWidgetOpt & opt,
01095 const YCPTerm & term, const YCPList & optList, int argnr,
01096 YRadioButtonGroup *rbg, YUIDimension dim );
01097
01105 YWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
01106 const YCPTerm & term, const YCPList & optList, int argnr,
01107 YRadioButtonGroup *rbg,
01108 YAlignmentType halign, YAlignmentType valign );
01109
01114 YWidget *createMarginBox( YWidget * parent, YWidgetOpt & opt,
01115 const YCPTerm & term, const YCPList & optList,
01116 int argnr, YRadioButtonGroup * rbg );
01117
01125 YWidget *createMinSize( YWidget * parent, YWidgetOpt & opt,
01126 const YCPTerm & term, const YCPList & optList, int argnr,
01127 YRadioButtonGroup * rbg,
01128 bool hor, bool vert );
01129
01137 YWidget *createSquash( YWidget *parent, YWidgetOpt & opt,
01138 const YCPTerm & term, const YCPList & optList, int argnr,
01139 YRadioButtonGroup *rbg, bool hsquash, bool vsquash );
01140
01147 YWidget *createLBox( YWidget *parent, YWidgetOpt & opt,
01148 const YCPTerm & term, const YCPList & optList, int argnr,
01149 YRadioButtonGroup *rbg, YUIDimension dim );
01150
01157 YWidget *createLabel( YWidget *parent, YWidgetOpt & opt,
01158 const YCPTerm & term, const YCPList & optList, int argnr,
01159 bool heading );
01160
01161 YWidget *createDate( YWidget *parent, YWidgetOpt & opt,
01162 const YCPTerm & term, const YCPList & optList, int argnr);
01163
01164 YWidget *createTime( YWidget *parent, YWidgetOpt & opt,
01165 const YCPTerm & term, const YCPList & optList, int argnr);
01166
01171 YWidget *createRichText( YWidget *parent, YWidgetOpt & opt,
01172 const YCPTerm & term, const YCPList & optList, int argnr );
01173
01174
01179 YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
01180 const YCPTerm & term, const YCPList & optList, int argnr );
01181
01186 YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt,
01187 const YCPTerm & term, const YCPList & optList, int argnr,
01188 bool isIconButton );
01189
01194 YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt,
01195 const YCPTerm & term, const YCPList & optList, int argnr );
01196
01201 YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt,
01202 const YCPTerm & term, const YCPList & optList, int argnr );
01203
01208 YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt,
01209 const YCPTerm & term, const YCPList & optList, int argnr,
01210 YRadioButtonGroup *rbg );
01211
01216 YWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt,
01217 const YCPTerm & term, const YCPList & optList, int argnr,
01218 YRadioButtonGroup *rbg );
01219
01226 YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt,
01227 const YCPTerm & term, const YCPList & optList, int argnr,
01228 bool password );
01229
01234 YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt,
01235 const YCPTerm & term, const YCPList & optList, int argnr );
01236
01241 YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt,
01242 const YCPTerm & term, const YCPList & optList, int argnr );
01243
01248 YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt,
01249 const YCPTerm & term, const YCPList & optList, int argnr );
01250
01255 YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt,
01256 const YCPTerm & term, const YCPList & optList, int argnr );
01257
01262 YWidget *createTree( YWidget *parent, YWidgetOpt & opt,
01263 const YCPTerm & term, const YCPList & optList, int argnr );
01264
01269 YWidget *createTable( YWidget *parent, YWidgetOpt & opt,
01270 const YCPTerm & term, const YCPList & optList, int argnr );
01271
01276 YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt,
01277 const YCPTerm & term, const YCPList & optList, int argnr );
01278
01283 YWidget *createImage( YWidget *parent, YWidgetOpt & opt,
01284 const YCPTerm & term, const YCPList & optList, int argnr );
01285
01290 YWidget *createIntField( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01291 const YCPList & optList, int argnr );
01292
01297 YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01298 const YCPList & optList, int argnr );
01299
01304 YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01305 const YCPList & optList, int argnr );
01306
01311 YWidget *createWizard( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01312 const YCPList & optList, int argnr );
01313
01318 YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt,
01319 const YCPTerm & term, const YCPList & optList, int argnr );
01320
01325 YWidget *createDownloadProgress( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01326 const YCPList & optList, int argnr );
01327
01332 YWidget *createBarGraph( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01333 const YCPList & optList, int argnr );
01334
01339 YWidget *createColoredLabel( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01340 const YCPList & optList, int argnr );
01341
01346 YWidget *createDumbTab( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01347 const YCPList & optList, int argnr, YRadioButtonGroup * rbg );
01348
01353 YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01354 const YCPList & optList, int argnr, bool horizontal );
01359 YWidget *createSlider( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01360 const YCPList & optList, int argnr );
01361
01366 YWidget *createPartitionSplitter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01367 const YCPList & optList, int argnr );
01368
01373 YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01374 const YCPList & optList, int argnr );
01375
01376
01384 YCPValue getWidgetId( const YCPTerm & term, int *argnr );
01385
01397 YCPList getWidgetOptions( const YCPTerm & term, int *argnr );
01398
01404 void logUnknownOption( const YCPTerm & term, const YCPValue & option );
01405
01412 void rejectAllOptions( const YCPTerm & term, const YCPList & optList );
01413
01417 void registerDialog( YDialog * );
01418
01422 void removeDialog();
01423
01429 bool isSymbolOrId( const YCPValue & val ) const;
01430
01431
01435 void deleteMacroRecorder();
01436
01440 void deleteMacroPlayer();
01441
01445 void playNextMacroBlock();
01446
01450 typedef vector<YDialog *> dialogstack_type;
01451
01456 dialogstack_type dialogstack;
01457
01461 long long id_counter;
01462
01466 bool with_threads;
01467
01471 pthread_t ui_thread;
01472
01480 YUIBuiltinCallData _builtinCallData;
01481
01487 int pipe_to_ui[2];
01488
01494 int pipe_from_ui[2];
01495
01502 bool terminate_ui_thread;
01503
01507 string _moduleName;
01508
01512 string _productName;
01513
01517 YMacroRecorder *macroRecorder;
01518
01522 YMacroPlayer *macroPlayer;
01523
01527 deque<YCPValue> fakeUserInputQueue;
01528
01532 YCPMap default_fkeys;
01533
01538 bool _events_blocked;
01539
01544 static bool _reverseLayout;
01545
01549 Y2Component * _callback;
01550
01551
01555 static YUI * _yui;
01556
01557 };
01558
01559 #endif // YUI_h