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 class Y2UIFunction;
00055
00056 typedef struct
00057 {
00058 int red;
00059 int green;
00060 int blue;
00061 } YColor;
00062
00063 struct YUIBuiltinCallData
00064 {
00065 Y2UIFunction * function;
00066 YCPValue result;
00067
00068 YUIBuiltinCallData()
00069 : result( YCPVoid() )
00070 {
00071 function = 0;
00072 }
00073 };
00074
00075
00092 class YUI
00093 {
00094 protected:
00098 YUI( bool with_threads );
00099
00100 friend class Y2UIFunction;
00101
00102 public:
00103
00107 virtual ~YUI();
00108
00109
00113 static YUI * ui() { return _yui; }
00114
00115
00119 bool threads() { return with_threads; }
00120
00124 YDialog *currentDialog() const;
00125
00126
00135 virtual void blockEvents( bool block = true ) { _events_blocked = block; }
00136
00143 void unblockEvents() { blockEvents( false ); }
00144
00150 virtual bool eventsBlocked() const { return _events_blocked; }
00151
00156 void topmostConstructorHasFinished();
00157
00166 virtual void internalError( const char *msg );
00167
00171 static int Recode( const string & str,
00172 const string & from,
00173 const string & to,
00174 string & outstr );
00175
00179 int parseMenuItemList( const YCPList & itemList, YMenuButton *menu_button, YMenu *parentMenu = 0 );
00180
00184 bool parseRgb( const YCPValue & val, YColor *color, bool complain );
00185
00196 YWidget *createWidgetTree( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg, const YCPTerm & term );
00197
00201 YWidget *createWidgetTree( YWidget *parent, YRadioButtonGroup *rbg, const YCPTerm & term );
00202
00211 YWidget *widgetWithId( const YCPValue & id, bool log_error=false );
00212
00221 YWidget *widgetWithId( YContainerWidget *widgetRoot, const YCPValue & id, bool log_error=false );
00222
00228 int defaultFunctionKey( YCPString label );
00229
00237 string productName() const { return _productName; }
00238
00245 virtual long deviceUnits( YUIDimension dim, float layout_units );
00246
00253 virtual float layoutUnits( YUIDimension dim, long device_units );
00254
00259 static bool reverseLayout() { return _reverseLayout; }
00260
00264 static void setReverseLayout( bool rev ) { _reverseLayout = rev; }
00265
00271 YCPValue callBuiltin( void * , int , YCPValue [] ) {
00272
00273 return YCPNull();
00274 }
00275
00280 static YCPValue callFunction( void * function, int argc, YCPValue argv[] );
00281
00285 void setCallback( Y2Component * callback ) { _callback = callback; }
00286
00290 Y2Component * getCallback() const { return _callback; }
00291
00296 YCPValue evaluateAskForExistingDirectory ( const YCPString& startDir, const YCPString& headline );
00297 YCPValue evaluateAskForExistingFile ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00298 YCPValue evaluateAskForSaveFileName ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00299 void evaluateBusyCursor ();
00300 void evaluateBeep ();
00301 YCPValue evaluateChangeWidget ( const YCPValue & value_id, const YCPValue & property, const YCPValue & new_value );
00302 void evaluateCheckShortcuts ();
00303 YCPValue evaluateCollectUserInput ();
00304 YCPValue evaluateCollectUserInput ( const YCPTerm & widgetId );
00305 YCPValue evaluateCloseDialog ();
00306 void evaluateDumpWidgetTree ();
00307 void evaluateFakeUserInput ( const YCPValue & next_input );
00308 YCPMap evaluateGetDisplayInfo ();
00309 YCPString evaluateGetLanguage ( const YCPBoolean & strip_encoding );
00310 YCPValue evaluateGetModulename ( const YCPTerm & term );
00311 YCPString evaluateGetProductName ();
00312 YCPString evaluateGlyph ( const YCPSymbol & symbol );
00313 YCPValue evaluateHasSpecialWidget ( const YCPSymbol & widget );
00314 void evaluateMakeScreenShot ( const YCPString & filename );
00315 void evaluateNormalCursor ();
00316 YCPBoolean evaluateOpenDialog ( const YCPTerm & term, const YCPTerm & opts = YCPNull() );
00317 void evaluatePlayMacro ( const YCPString & filename );
00318 void evaluatePostponeShortcutCheck ();
00319 YCPValue evaluateQueryWidget ( const YCPValue& value_id, const YCPValue& property );
00320 void evaluateRecalcLayout ();
00321 YCPValue evaluateRecode ( const YCPString & from, const YCPString & to, const YCPString & text );
00322 void evaluateRecordMacro ( const YCPString & filename );
00323 void evaluateRedrawScreen ();
00324 YCPBoolean evaluateReplaceWidget ( const YCPValue & value_id, const YCPTerm & term );
00325 YCPValue evaluateRunPkgSelection ( const YCPValue & value_id );
00326 void evaluateSetConsoleFont ( const YCPString& magic,
00327 const YCPString& font,
00328 const YCPString& screen_map,
00329 const YCPString& unicode_map,
00330 const YCPString& encoding );
00331 void evaluateSetKeyboard ();
00332 YCPInteger evaluateRunInTerminal ( const YCPString& module);
00333 YCPBoolean evaluateSetFocus ( const YCPValue & value_id );
00334 void evaluateSetFunctionKeys ( const YCPMap & new_keys );
00335 void evaluateSetLanguage ( const YCPString& lang, const YCPString& encoding = YCPNull() );
00336 void evaluateSetModulename ( const YCPString & name );
00337 void evaluateSetProductName ( const YCPString & name );
00338 void evaluateStopRecordMacro ();
00339 YCPBoolean evaluateWidgetExists ( const YCPValue & value_id );
00340
00341 YCPValue evaluateUserInput ();
00342 YCPValue evaluateTimeoutUserInput ( const YCPInteger & timeout );
00343 YCPValue evaluateWaitForEvent ( const YCPInteger & timeout = YCPNull() );
00344 YCPValue evaluateWizardCommand ( const YCPTerm & command );
00345 YCPValue evaluatePollInput ();
00346
00355 void uiThreadMainLoop();
00356
00363 static bool checkId( const YCPValue & val, bool complain = true );
00364
00369 static YCPValue getId( const YCPValue & v );
00370
00371
00372 protected:
00373
00374
00375
00376
00377 const char *moduleName();
00378
00379
00380
00395 virtual void idleLoop( int fd_ycp );
00396
00415 virtual YEvent * userInput( unsigned long timeout_millisec = 0 ) = 0;
00416
00431 virtual YEvent * pollInput() = 0;
00432
00437 virtual void showDialog( YDialog *dialog );
00438
00444 virtual void closeDialog( YDialog *dialog );
00445
00446
00455 virtual YCPString glyph( const YCPSymbol & ) { return YCPString( "" ); }
00456
00457
00458
00459
00460
00461
00466 virtual YDialog *createDialog( YWidgetOpt & opt ) = 0;
00467
00471 virtual YContainerWidget *createSplit( YWidget *parent, YWidgetOpt & opt, YUIDimension dimension ) = 0;
00472
00476 virtual YContainerWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt ) = 0;
00477
00481 virtual YContainerWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
00482 YAlignmentType halign,
00483 YAlignmentType valign ) = 0;
00484
00488 virtual YContainerWidget *createSquash( YWidget *parent, YWidgetOpt & opt, bool hsquash, bool vsquash ) = 0;
00489
00490
00494 virtual YContainerWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt ) = 0;
00495
00499 virtual YContainerWidget *createFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00500
00506 virtual YContainerWidget *createCheckBoxFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00507
00508
00509
00510
00511
00512
00516 virtual YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt ) = 0;
00517
00521 virtual YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt, float size, bool horizontal, bool vertical ) = 0;
00522
00529 virtual YWidget *createLabel( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00530
00531
00536 virtual YWidget *createRichText( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00537
00538
00545 virtual YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
00546 const YCPString & label, int visibleLines, int maxLines ) = 0;
00547
00552 virtual YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00553
00558 virtual YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00559
00565 virtual YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg,
00566 const YCPString & label, bool checked ) = 0;
00567
00573 virtual YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00574
00578 virtual YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00579
00583 virtual YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00584
00588 virtual YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00589
00593 virtual YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00594
00598 virtual YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00599
00603 virtual YWidget *createTree( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00604
00608 virtual YWidget *createTable( YWidget *parent, YWidgetOpt & opt, vector<string> header ) = 0;
00609
00613 virtual YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt, const YCPString & label,
00614 const YCPInteger & maxprogress, const YCPInteger & progress ) = 0;
00615
00619 virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPByteblock imagedata, YCPString defaulttext ) = 0;
00620
00624 virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPString file_name, YCPString defaulttext ) = 0;
00625
00629 virtual YWidget *createIntField( YWidget *parent, YWidgetOpt & opt,
00630 const YCPString & label, int minValue, int maxValue, int initialValue ) = 0;
00631
00638 virtual YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPString & floppyDevice ) = 0;
00639
00643 virtual YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPString & subwidget ) = 0;
00644
00645
00653 virtual YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt );
00654 virtual bool hasDummySpecialWidget() { return true; }
00655
00663 virtual YWidget * createDownloadProgress( YWidget *parent, YWidgetOpt & opt,
00664 const YCPString & label,
00665 const YCPString & filename,
00666 int expectedSize );
00667
00668 virtual bool hasDownloadProgress() { return false; }
00669
00677 virtual YWidget * createBarGraph( YWidget *parent, YWidgetOpt & opt );
00678 virtual bool hasBarGraph() { return false; }
00679
00687 virtual YWidget * createColoredLabel( YWidget *parent, YWidgetOpt & opt,
00688 YCPString label,
00689 YColor foreground, YColor background,
00690 int margin );
00691 virtual bool hasColoredLabel() { return false; }
00692
00693
00697 virtual YWidget * createDate( YWidget *parent,
00698 YWidgetOpt & opt,
00699 const YCPString & label,
00700 const YCPString & date );
00701 virtual bool hasDate() { return false; }
00702
00703
00707 virtual YWidget * createTime( YWidget *parent,
00708 YWidgetOpt & opt,
00709 const YCPString & label,
00710 const YCPString & time );
00711 virtual bool hasTime() { return false; }
00712
00713
00721 virtual YWidget * createDumbTab( YWidget *parent, YWidgetOpt & opt );
00722 virtual bool hasDumbTab() { return false; }
00723
00724
00732 virtual YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt,
00733 bool horizontal, const YCPList & maxValues );
00734 virtual bool hasMultiProgressMeter() { return false; }
00735
00736
00744 virtual YWidget * createSlider( YWidget * parent,
00745 YWidgetOpt & opt,
00746 const YCPString & label,
00747 int minValue,
00748 int maxValue,
00749 int initialValue );
00750 virtual bool hasSlider() { return false; }
00751
00773 virtual YWidget *createPartitionSplitter( YWidget * parent,
00774 YWidgetOpt & opt,
00775 int usedSize,
00776 int totalFreeSize,
00777 int newPartSize,
00778 int minNewPartSize,
00779 int minFreeSize,
00780 const YCPString & usedLabel,
00781 const YCPString & freeLabel,
00782 const YCPString & newPartLabel,
00783 const YCPString & freeFieldLabel,
00784 const YCPString & newPartFieldLabel );
00785
00786 virtual bool hasPartitionSplitter() { return false; }
00787
00791 virtual YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt );
00792
00793 virtual bool hasPatternSelector() { return false; }
00794
00795
00799 virtual YWidget *createSimplePatchSelector( YWidget *parent, YWidgetOpt & opt );
00800
00801 virtual bool hasSimplePatchSelector() { return false; }
00802
00803
00807 virtual YWidget *createWizard( YWidget *parent, YWidgetOpt & opt,
00808 const YCPValue & backButtonId, const YCPString & backButtonLabel,
00809 const YCPValue & abortButtonId, const YCPString & abortButtonLabel,
00810 const YCPValue & nextButtonId, const YCPString & nextButtonLabel );
00811
00812 virtual bool hasWizard() { return false; }
00813
00814
00820 virtual YCPValue setLanguage( const YCPTerm & term );
00821
00822
00828 virtual YCPValue setConsoleFont( const YCPString & console_magic,
00829 const YCPString & font,
00830 const YCPString & screen_map,
00831 const YCPString & unicode_map,
00832 const YCPString & encoding );
00833
00834 virtual YCPValue setKeyboard();
00835
00836
00843 virtual int runInTerminal( const YCPString & module );
00844
00849 virtual int getDisplayWidth() { return -1; }
00850 virtual int getDisplayHeight() { return -1; }
00851 virtual int getDisplayDepth() { return -1; }
00852 virtual long getDisplayColors() { return -1; }
00853 virtual int getDefaultWidth() { return -1; }
00854 virtual int getDefaultHeight() { return -1; }
00855 virtual bool textMode() { return true; }
00856 virtual bool hasImageSupport() { return false; }
00857 virtual bool hasLocalImageSupport() { return true; }
00858 virtual bool hasAnimationSupport() { return false; }
00859 virtual bool hasIconSupport() { return false; }
00860 virtual bool hasFullUtf8Support() { return false; }
00861 virtual bool richTextSupportsTable() { return false; }
00862 virtual bool leftHandedMouse() { return false; }
00863
00868 virtual void busyCursor();
00869
00874 virtual void normalCursor();
00875
00880 virtual void redrawScreen();
00881
00886 virtual void makeScreenShot( string filename );
00887
00894 virtual void beep();
00895
00902 virtual YCPValue runPkgSelection( YWidget * ) { return YCPVoid(); }
00903
00904
00918 virtual YCPValue askForExistingDirectory( const YCPString & startDir,
00919 const YCPString & headline ) = 0;
00920
00936 virtual YCPValue askForExistingFile( const YCPString & startWith,
00937 const YCPString & filter,
00938 const YCPString & headline ) = 0;
00939
00956 virtual YCPValue askForSaveFileName( const YCPString & startWith,
00957 const YCPString & filter,
00958 const YCPString & headline ) = 0;
00959
00960
00961
00962 YCPValue callback ( const YCPValue & value );
00963
00967 YCPValue evaluateLocale( const YCPLocale & );
00968
00974 void recordMacro( string filename );
00975
00980 void stopRecordMacro();
00981
00986 void playMacro( string filename );
00987
00991 bool recordingMacro() { return macroRecorder != 0; }
00992
00996 bool playingMacro() { return macroPlayer != 0; }
00997
00998
00999 protected:
01004 void terminateUIThread();
01005
01006
01010 void createUIThread();
01011 friend void *start_ui_thread( void *ui_int );
01012
01017 void signalUIThread();
01018
01023 bool waitForUIThread();
01024
01029 void signalYCPThread();
01030
01035 bool waitForYCPThread();
01036
01040 YEvent * filterInvalidEvents( YEvent * event );
01041
01061 YCPValue doUserInput( const char * builtin_name,
01062 long timeout_millisec,
01063 bool wait,
01064 bool detailed );
01065
01066
01070 YCPValue evaluateCallback( const YCPTerm & term, bool to_wfm );
01071
01072
01086 YRadioButtonGroup *findRadioButtonGroup( YContainerWidget *root, YWidget *w, bool *contains );
01087
01088
01097 YWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt,
01098 const YCPTerm & term, const YCPList & optList, int argnr,
01099 YRadioButtonGroup *rbg );
01100
01101
01106 YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt,
01107 const YCPTerm & term, const YCPList & optList, int argnr,
01108 bool hstretchable, bool vstretchable );
01109
01116 YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt,
01117 const YCPTerm & term, const YCPList & optList, int argnr,
01118 bool horizontal, bool vertical );
01119
01124 YWidget *createFrame( YWidget *parent, YWidgetOpt & opt,
01125 const YCPTerm & term, const YCPList & optList, int argnr,
01126 YRadioButtonGroup *rbg );
01131 YWidget *createCheckBoxFrame( YWidget *parent, YWidgetOpt & opt,
01132 const YCPTerm & term, const YCPList & optList, int argnr,
01133 YRadioButtonGroup *rbg );
01134
01135
01141 YWidget *createWeight( YWidget *parent, YWidgetOpt & opt,
01142 const YCPTerm & term, const YCPList & optList, int argnr,
01143 YRadioButtonGroup *rbg, YUIDimension dim );
01144
01152 YWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
01153 const YCPTerm & term, const YCPList & optList, int argnr,
01154 YRadioButtonGroup *rbg,
01155 YAlignmentType halign, YAlignmentType valign );
01156
01161 YWidget *createMarginBox( YWidget * parent, YWidgetOpt & opt,
01162 const YCPTerm & term, const YCPList & optList,
01163 int argnr, YRadioButtonGroup * rbg );
01164
01172 YWidget *createMinSize( YWidget * parent, YWidgetOpt & opt,
01173 const YCPTerm & term, const YCPList & optList, int argnr,
01174 YRadioButtonGroup * rbg,
01175 bool hor, bool vert );
01176
01184 YWidget *createSquash( YWidget *parent, YWidgetOpt & opt,
01185 const YCPTerm & term, const YCPList & optList, int argnr,
01186 YRadioButtonGroup *rbg, bool hsquash, bool vsquash );
01187
01194 YWidget *createLBox( YWidget *parent, YWidgetOpt & opt,
01195 const YCPTerm & term, const YCPList & optList, int argnr,
01196 YRadioButtonGroup *rbg, YUIDimension dim );
01197
01204 YWidget *createLabel( YWidget *parent, YWidgetOpt & opt,
01205 const YCPTerm & term, const YCPList & optList, int argnr,
01206 bool heading );
01207
01208 YWidget *createDate( YWidget *parent, YWidgetOpt & opt,
01209 const YCPTerm & term, const YCPList & optList, int argnr);
01210
01211 YWidget *createTime( YWidget *parent, YWidgetOpt & opt,
01212 const YCPTerm & term, const YCPList & optList, int argnr);
01213
01218 YWidget *createRichText( YWidget *parent, YWidgetOpt & opt,
01219 const YCPTerm & term, const YCPList & optList, int argnr );
01220
01221
01226 YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
01227 const YCPTerm & term, const YCPList & optList, int argnr );
01228
01233 YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt,
01234 const YCPTerm & term, const YCPList & optList, int argnr,
01235 bool isIconButton );
01236
01241 YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt,
01242 const YCPTerm & term, const YCPList & optList, int argnr );
01243
01248 YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt,
01249 const YCPTerm & term, const YCPList & optList, int argnr );
01250
01255 YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt,
01256 const YCPTerm & term, const YCPList & optList, int argnr,
01257 YRadioButtonGroup *rbg );
01258
01263 YWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt,
01264 const YCPTerm & term, const YCPList & optList, int argnr,
01265 YRadioButtonGroup *rbg );
01266
01273 YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt,
01274 const YCPTerm & term, const YCPList & optList, int argnr,
01275 bool password );
01276
01281 YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt,
01282 const YCPTerm & term, const YCPList & optList, int argnr );
01283
01288 YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt,
01289 const YCPTerm & term, const YCPList & optList, int argnr );
01290
01295 YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt,
01296 const YCPTerm & term, const YCPList & optList, int argnr );
01297
01302 YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt,
01303 const YCPTerm & term, const YCPList & optList, int argnr );
01304
01309 YWidget *createTree( YWidget *parent, YWidgetOpt & opt,
01310 const YCPTerm & term, const YCPList & optList, int argnr );
01311
01316 YWidget *createTable( YWidget *parent, YWidgetOpt & opt,
01317 const YCPTerm & term, const YCPList & optList, int argnr );
01318
01323 YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt,
01324 const YCPTerm & term, const YCPList & optList, int argnr );
01325
01330 YWidget *createImage( YWidget *parent, YWidgetOpt & opt,
01331 const YCPTerm & term, const YCPList & optList, int argnr );
01332
01337 YWidget *createIntField( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01338 const YCPList & optList, int argnr );
01339
01344 YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01345 const YCPList & optList, int argnr );
01346
01351 YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01352 const YCPList & optList, int argnr );
01353
01358 YWidget *createWizard( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01359 const YCPList & optList, int argnr );
01360
01365 YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt,
01366 const YCPTerm & term, const YCPList & optList, int argnr );
01367
01372 YWidget *createDownloadProgress( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01373 const YCPList & optList, int argnr );
01374
01379 YWidget *createBarGraph( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01380 const YCPList & optList, int argnr );
01381
01386 YWidget *createColoredLabel( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01387 const YCPList & optList, int argnr );
01388
01393 YWidget *createDumbTab( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01394 const YCPList & optList, int argnr, YRadioButtonGroup * rbg );
01395
01400 YWidget * createMultiProgressMeter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01401 const YCPList & optList, int argnr, bool horizontal );
01406 YWidget *createSlider( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01407 const YCPList & optList, int argnr );
01408
01413 YWidget *createPartitionSplitter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01414 const YCPList & optList, int argnr );
01415
01420 YWidget *createPatternSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01421 const YCPList & optList, int argnr );
01422
01427 YWidget *createSimplePatchSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01428 const YCPList & optList, int argnr );
01429
01430
01438 YCPValue getWidgetId( const YCPTerm & term, int *argnr );
01439
01451 YCPList getWidgetOptions( const YCPTerm & term, int *argnr );
01452
01458 void logUnknownOption( const YCPTerm & term, const YCPValue & option );
01459
01466 void rejectAllOptions( const YCPTerm & term, const YCPList & optList );
01467
01471 void registerDialog( YDialog * );
01472
01476 void removeDialog();
01477
01483 bool isSymbolOrId( const YCPValue & val ) const;
01484
01485
01489 void deleteMacroRecorder();
01490
01494 void deleteMacroPlayer();
01495
01499 void playNextMacroBlock();
01500
01504 typedef vector<YDialog *> dialogstack_type;
01505
01510 dialogstack_type dialogstack;
01511
01515 long long id_counter;
01516
01520 bool with_threads;
01521
01525 pthread_t ui_thread;
01526
01534 YUIBuiltinCallData _builtinCallData;
01535
01541 int pipe_to_ui[2];
01542
01548 int pipe_from_ui[2];
01549
01556 bool terminate_ui_thread;
01557
01561 string _moduleName;
01562
01566 string _productName;
01567
01571 YMacroRecorder *macroRecorder;
01572
01576 YMacroPlayer *macroPlayer;
01577
01581 deque<YCPValue> fakeUserInputQueue;
01582
01586 YCPMap default_fkeys;
01587
01592 bool _events_blocked;
01593
01598 static bool _reverseLayout;
01599
01603 Y2Component * _callback;
01604
01605
01609 static YUI * _yui;
01610
01611 };
01612
01613 #endif // YUI_h