YUI.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                                                                      |
00003 |                      __   __    ____ _____ ____                      |
00004 |                      \ \ / /_ _/ ___|_   _|___ \                     |
00005 |                       \ V / _` \___ \ | |   __) |                    |
00006 |                        | | (_| |___) || |  / __/                     |
00007 |                        |_|\__,_|____/ |_| |_____|                    |
00008 |                                                                      |
00009 |                               core system                            |
00010 |                                                        (C) SuSE GmbH |
00011 \----------------------------------------------------------------------/
00012 
00013   File:         YUI.h
00014 
00015   Authors:      Mathias Kettner <kettner@suse.de>
00016                 Stefan Hundhammer <sh@suse.de>
00017                 
00018   Maintainer:   Stefan Hundhammer <sh@suse.de>
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 * /*function*/, int /*argc*/, YCPValue /*argv*/[] ) {
00272         // FIXME dummy UI?
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     // Event handling, execution flow
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 & /*glyphSymbol*/ ) { return YCPString( "" ); }
00456 
00457 
00458     //
00459     // Widget creation functions - container widgets
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     // Widget creation functions - leaf widgets
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 * /*packageSelector*/ ) { 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

Generated on Tue Nov 6 01:27:46 2007 for yast2-core by  doxygen 1.5.3