Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Examples

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   Author:       Mathias Kettner <kettner@suse.de>
00016   Maintainer:   Stefan Hundhammer <sh@suse.de>
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 
00113     YDialog *currentDialog() const;
00114 
00115 
00124     virtual void blockEvents( bool block = true ) { _events_blocked = block; }
00125 
00132     void unblockEvents() { blockEvents( false ); }
00133 
00139     virtual bool eventsBlocked() const { return _events_blocked; }
00140 
00145     void topmostConstructorHasFinished();
00146 
00150     enum ImageType
00151     {
00152         IT_SUSEHEADER,
00153         IT_YAST2
00154     };
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 
00179 
00183     int parseTreeItemList( const YCPList & itemList, YTree *tree, YTreeItem *parentItem = 0 );
00184 
00185 
00189     int parseMultiSelectionBoxItemList( const YCPList & item_list, YMultiSelectionBox * multi_sel_box );
00190 
00194     bool YUI::parseRgb( const YCPValue & val, YColor *color, bool complain );
00195 
00206     YWidget *createWidgetTree( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg, const YCPTerm & term );
00207 
00211     YWidget *createWidgetTree( YWidget *parent, YRadioButtonGroup *rbg, const YCPTerm & term );
00212 
00221     YWidget *widgetWithId( const YCPValue & id, bool log_error=false );
00222 
00231     YWidget *widgetWithId( YContainerWidget *widgetRoot, const YCPValue & id, bool log_error=false );
00232 
00236     YCPBoolean evaluateReplaceWidget( const YCPValue & value_id, const YCPTerm & term );
00237 
00243     int defaultFunctionKey( YCPString label );
00244 
00252     string productName() const { return _productName; }
00253 
00258     static bool reverseLayout() { return _reverseLayout; }
00259 
00263     static void setReverseLayout( bool rev ) { _reverseLayout = rev; }
00264 
00270     YCPValue callBuiltin( void * function, int argc, YCPValue argv[] );
00271 
00276     static YCPValue callFunction( void * function, int argc, YCPValue argv[] );
00277 
00281     void setCallback( Y2Component * callback ) { _callback = callback; }
00282     
00286     Y2Component * getCallback() const { return _callback; }
00287 
00292     YCPValue evaluateAskForExistingDirectory            ( const YCPString& startDir, const YCPString& headline );
00293     YCPValue evaluateAskForExistingFile                 ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00294     YCPValue evaluateAskForSaveFileName                 ( const YCPString& startDir, const YCPString& filter, const YCPString& headline );
00295     void evaluateBusyCursor                             ();
00296     YCPValue evaluateChangeWidget                       ( const YCPValue & value_id, const YCPValue & property, const YCPValue & new_value );
00297     void evaluateCheckShortcuts                         ();
00298     YCPValue evaluateCloseDialog                        ();
00299     void evaluateDumpWidgetTree                         ();
00300     void evaluateFakeUserInput                          ( const YCPValue & next_input );
00301     YCPMap evaluateGetDisplayInfo                       ();
00302     YCPString evaluateGetLanguage                       ( const YCPBoolean & strip_encoding );
00303     YCPValue evaluateGetModulename                      ( const YCPTerm & term );
00304     YCPString evaluateGetProductName                    ();
00305     YCPString evaluateGlyph                             ( const YCPSymbol & symbol );
00306     YCPValue evaluateHasSpecialWidget                   ( const YCPSymbol & widget );
00307     void evaluateMakeScreenShot                         ( const YCPString & filename );
00308     void evaluateNormalCursor                           ();
00309     YCPBoolean evaluateOpenDialog                       ( const YCPTerm & term, const YCPTerm & term = YCPNull() );
00310     void evaluatePlayMacro                              ( const YCPString & filename );
00311     void evaluatePostponeShortcutCheck                  ();
00312     YCPValue evaluateQueryWidget                        ( const YCPValue& value_id, const YCPValue& property );
00313     void evaluateRecalcLayout                           ();
00314     YCPValue evaluateRecode                             ( const YCPString & from, const YCPString & to, const YCPString & text );
00315     void evaluateRecordMacro                            ( const YCPString & filename );
00316     void evaluateRedrawScreen                           ();
00317     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 
00348 
00349 protected:
00350 
00351 
00352 
00353 
00354     const char *moduleName();
00355 
00356     // Event handling, execution flow
00357 
00372     virtual void idleLoop( int fd_ycp );
00373 
00392     virtual YEvent * userInput( unsigned long timeout_millisec = 0 ) = 0;
00393 
00408     virtual YEvent * pollInput() = 0;
00409 
00414     virtual void showDialog( YDialog *dialog );
00415 
00421     virtual void closeDialog( YDialog *dialog );
00422 
00423 
00432     virtual YCPString glyph( const YCPSymbol & glyphSymbol ) { return YCPString( "" ); }
00433 
00434 
00435     //
00436     // Widget creation functions - container widgets
00437     //
00438 
00443     virtual YDialog *createDialog( YWidgetOpt & opt ) = 0;
00444 
00448     virtual YContainerWidget *createSplit( YWidget *parent, YWidgetOpt & opt, YUIDimension dimension ) = 0;
00449 
00453     virtual YContainerWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt ) = 0;
00454 
00458     virtual YContainerWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
00459                                                YAlignmentType halign,
00460                                                YAlignmentType valign ) = 0;
00461 
00465     virtual YContainerWidget *createSquash( YWidget *parent, YWidgetOpt & opt, bool hsquash, bool vsquash ) = 0;
00466 
00467 
00471     virtual YContainerWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt ) = 0;
00472 
00476     virtual YContainerWidget *createFrame( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00477 
00478 
00479 
00480     //
00481     // Widget creation functions - leaf widgets
00482     //
00483 
00487     virtual YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt ) = 0;
00488 
00492     virtual YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt, float size, bool horizontal, bool vertical ) = 0;
00493 
00500     virtual YWidget *createLabel( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00501 
00506     virtual YWidget *createRichText( YWidget *parent, YWidgetOpt & opt, const YCPString & text ) = 0;
00507 
00508 
00515     virtual YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
00516                                     const YCPString & label, int visibleLines, int maxLines ) = 0;
00517 
00522     virtual YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00523 
00528     virtual YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00529 
00535     virtual YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt, YRadioButtonGroup *rbg,
00536                                         const YCPString & label, bool checked ) = 0;
00537 
00543     virtual YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label, bool checked ) = 0;
00544 
00548     virtual YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00549 
00553     virtual YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt, const YCPString & label, const YCPString & text ) = 0;
00554 
00558     virtual YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00559 
00563     virtual YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00564 
00568     virtual YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00569 
00573     virtual YWidget *createTree( YWidget *parent, YWidgetOpt & opt, const YCPString & label ) = 0;
00574 
00578     virtual YWidget *createTable( YWidget *parent, YWidgetOpt & opt, vector<string> header ) = 0;
00579 
00583     virtual YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt, const YCPString & label,
00584                                         const YCPInteger & maxprogress, const YCPInteger & progress ) = 0;
00585 
00589     virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPByteblock imagedata, YCPString defaulttext ) = 0;
00590 
00594     virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, YCPString file_name, YCPString defaulttext ) = 0;
00595 
00599     virtual YWidget *createImage( YWidget *parent, YWidgetOpt & opt, ImageType img, YCPString defaulttext ) = 0;
00600 
00604     virtual YWidget *createIntField( YWidget *parent, YWidgetOpt & opt,
00605                                      const YCPString & label, int minValue, int maxValue, int initialValue ) = 0;
00606 
00613     virtual YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPString & floppyDevice ) = 0;
00614 
00618     virtual YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPString & subwidget ) = 0;
00619 
00620 
00628     virtual YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt );
00629     virtual bool     hasDummySpecialWidget() { return true; }
00630 
00638     virtual YWidget *   createDownloadProgress( YWidget *parent, YWidgetOpt & opt,
00639                                                 const YCPString & label,
00640                                                 const YCPString & filename,
00641                                                 int expectedSize );
00642     
00643     virtual bool        hasDownloadProgress() { return false; }
00644 
00652     virtual YWidget *   createBarGraph( YWidget *parent, YWidgetOpt & opt );
00653     virtual bool        hasBarGraph()  { return false; }
00654 
00662     virtual YWidget *   createColoredLabel( YWidget *parent, YWidgetOpt & opt,
00663                                             YCPString label,
00664                                             YColor foreground, YColor background,
00665                                             int margin );
00666     virtual bool        hasColoredLabel() { return false; }
00667 
00668 
00676     virtual YWidget *   createDumbTab( YWidget *parent, YWidgetOpt & opt );
00677     virtual bool        hasDumbTab() { return false; }
00678 
00679 
00687     virtual YWidget *   createSlider( YWidget *         parent,
00688                                       YWidgetOpt &      opt,
00689                                       const YCPString & label,
00690                                       int               minValue,
00691                                       int               maxValue,
00692                                       int               initialValue );
00693     virtual bool        hasSlider() { return false; }
00694 
00716     virtual YWidget *createPartitionSplitter( YWidget *         parent,
00717                                               YWidgetOpt &      opt,
00718                                               int               usedSize,
00719                                               int               totalFreeSize,
00720                                               int               newPartSize,
00721                                               int               minNewPartSize,
00722                                               int               minFreeSize,
00723                                               const YCPString & usedLabel,
00724                                               const YCPString & freeLabel,
00725                                               const YCPString & newPartLabel,
00726                                               const YCPString & freeFieldLabel,
00727                                               const YCPString & newPartFieldLabel );
00728     
00729     virtual bool        hasPartitionSplitter()  { return false; }
00730 
00731 
00735     virtual YWidget *createWizard( YWidget *parent, YWidgetOpt & opt,
00736                                    const YCPValue & backButtonId,       const YCPString & backButtonLabel,
00737                                    const YCPValue & abortButtonId,      const YCPString & abortButtonLabel,
00738                                    const YCPValue & nextButtonId,       const YCPString & nextButtonLabel  );
00739     
00740     virtual bool        hasWizard() { return false; }
00741 
00742     
00748     virtual YCPValue setLanguage( const YCPTerm & term );
00749 
00750 
00756     virtual YCPValue setConsoleFont( const YCPString & console_magic,
00757                                      const YCPString & font,
00758                                      const YCPString & screen_map,
00759                                      const YCPString & unicode_map,
00760                                      const YCPString & encoding );
00761 
00762     virtual YCPValue setKeyboard();
00763 
00768     virtual int  getDisplayWidth()              { return -1; }
00769     virtual int  getDisplayHeight()             { return -1; }
00770     virtual int  getDisplayDepth()              { return -1; }
00771     virtual long getDisplayColors()             { return -1; }
00772     virtual int  getDefaultWidth()              { return -1; }
00773     virtual int  getDefaultHeight()             { return -1; }
00774     virtual bool textMode()                     { return true; }
00775     virtual bool hasImageSupport()              { return false; }
00776     virtual bool hasLocalImageSupport()         { return true;  }
00777     virtual bool hasAnimationSupport()          { return false; }
00778     virtual bool hasIconSupport()               { return false; }
00779     virtual bool hasFullUtf8Support()           { return false; }
00780 
00785     virtual void busyCursor();
00786 
00791     virtual void normalCursor();
00792 
00797     virtual void redrawScreen();
00798 
00803     virtual void makeScreenShot( string filename );
00804 
00805 
00812     virtual YCPValue runPkgSelection( YWidget * packageSelector ) { return YCPVoid(); }
00813 
00814 
00828     virtual YCPValue askForExistingDirectory( const YCPString & startDir,
00829                                               const YCPString & headline ) = 0;
00830 
00846     virtual YCPValue askForExistingFile( const YCPString & startWith,
00847                                          const YCPString & filter,
00848                                          const YCPString & headline ) = 0;
00849 
00866     virtual YCPValue askForSaveFileName( const YCPString & startWith,
00867                                          const YCPString & filter,
00868                                          const YCPString & headline ) = 0;
00869 
00870 
00871 
00872     YCPValue callback           ( const YCPValue & value );
00873 
00877     YCPValue evaluateLocale( const YCPLocale & );
00878 
00884     void recordMacro( string filename );
00885 
00890     void stopRecordMacro();
00891 
00896     void playMacro( string filename );
00897 
00901     bool recordingMacro()       { return macroRecorder != 0;    }
00902 
00906     bool playingMacro()         { return macroPlayer != 0;      }
00907 
00908 
00909 protected:
00914     void terminateUIThread();
00915 
00916 
00920     void createUIThread();
00921     friend void *start_ui_thread( void *ui_int );
00922 
00927     void signalUIThread();
00928 
00933     bool waitForUIThread();
00934 
00939     void signalYCPThread();
00940 
00945     bool waitForYCPThread();
00946 
00950     YEvent * filterInvalidEvents( YEvent * event );
00951 
00971     YCPValue doUserInput( const char *  builtin_name,
00972                           long          timeout_millisec,
00973                           bool          wait,
00974                           bool          detailed );
00975 
00976     
00980     YCPValue evaluateCallback( const YCPTerm & term, bool to_wfm );
00981 
00982 
00996     YRadioButtonGroup *findRadioButtonGroup( YContainerWidget *root, YWidget *w, bool *contains );
00997 
00998 
01007     YWidget *createReplacePoint( YWidget *parent, YWidgetOpt & opt,
01008                                  const YCPTerm & term, const YCPList & optList, int argnr,
01009                                  YRadioButtonGroup *rbg );
01010 
01011 
01016     YWidget *createEmpty( YWidget *parent, YWidgetOpt & opt,
01017                           const YCPTerm & term, const YCPList & optList, int argnr,
01018                           bool hstretchable, bool vstretchable );
01019 
01026     YWidget *createSpacing( YWidget *parent, YWidgetOpt & opt,
01027                             const YCPTerm & term, const YCPList & optList, int argnr,
01028                             bool horizontal, bool vertical );
01029 
01034     YWidget *createFrame( YWidget *parent, YWidgetOpt & opt,
01035                           const YCPTerm & term, const YCPList & optList, int argnr,
01036                           YRadioButtonGroup *rbg );
01037 
01043     YWidget *createWeight( YWidget *parent, YWidgetOpt & opt,
01044                            const YCPTerm & term, const YCPList & optList, int argnr,
01045                            YRadioButtonGroup *rbg, YUIDimension dim );
01046 
01054     YWidget *createAlignment( YWidget *parent, YWidgetOpt & opt,
01055                               const YCPTerm & term, const YCPList & optList, int argnr,
01056                               YRadioButtonGroup *rbg,
01057                               YAlignmentType halign, YAlignmentType valign );
01058 
01059 
01067     YWidget *createSquash( YWidget *parent, YWidgetOpt & opt,
01068                            const YCPTerm & term, const YCPList & optList, int argnr,
01069                            YRadioButtonGroup *rbg, bool hsquash, bool vsquash );
01070 
01077     YWidget *createLBox( YWidget *parent, YWidgetOpt & opt,
01078                          const YCPTerm & term, const YCPList & optList, int argnr,
01079                          YRadioButtonGroup *rbg, YUIDimension dim );
01080 
01087     YWidget *createLabel( YWidget *parent, YWidgetOpt & opt,
01088                           const YCPTerm & term, const YCPList & optList, int argnr,
01089                           bool heading );
01090 
01095     YWidget *createRichText( YWidget *parent, YWidgetOpt & opt,
01096                              const YCPTerm & term, const YCPList & optList, int argnr );
01097 
01098 
01103     YWidget *createLogView( YWidget *parent, YWidgetOpt & opt,
01104                             const YCPTerm & term, const YCPList & optList, int argnr );
01105 
01110     YWidget *createPushButton( YWidget *parent, YWidgetOpt & opt,
01111                                const YCPTerm & term, const YCPList & optList, int argnr,
01112                                bool isIconButton );
01113 
01118     YWidget *createMenuButton( YWidget *parent, YWidgetOpt & opt,
01119                                const YCPTerm & term, const YCPList & optList, int argnr );
01120 
01125     YWidget *createCheckBox( YWidget *parent, YWidgetOpt & opt,
01126                              const YCPTerm & term, const YCPList & optList, int argnr );
01127 
01132     YWidget *createRadioButton( YWidget *parent, YWidgetOpt & opt,
01133                                 const YCPTerm & term, const YCPList & optList, int argnr,
01134                                 YRadioButtonGroup *rbg );
01135 
01140     YWidget *createRadioButtonGroup( YWidget *parent, YWidgetOpt & opt,
01141                                      const YCPTerm & term, const YCPList & optList, int argnr,
01142                                      YRadioButtonGroup *rbg );
01143 
01150     YWidget *createTextEntry( YWidget *parent, YWidgetOpt & opt,
01151                               const YCPTerm & term, const YCPList & optList, int argnr,
01152                               bool password );
01153 
01158     YWidget *createMultiLineEdit( YWidget *parent, YWidgetOpt & opt,
01159                                   const YCPTerm & term, const YCPList & optList, int argnr );
01160 
01165     YWidget *createSelectionBox( YWidget *parent, YWidgetOpt & opt,
01166                                  const YCPTerm & term, const YCPList & optList, int argnr );
01167 
01172     YWidget *createMultiSelectionBox( YWidget *parent, YWidgetOpt & opt,
01173                                       const YCPTerm & term, const YCPList & optList, int argnr );
01174 
01179     YWidget *createComboBox( YWidget *parent, YWidgetOpt & opt,
01180                              const YCPTerm & term, const YCPList & optList, int argnr );
01181 
01186     YWidget *createTree( YWidget *parent, YWidgetOpt & opt,
01187                          const YCPTerm & term, const YCPList & optList, int argnr );
01188 
01193     YWidget *createTable( YWidget *parent, YWidgetOpt & opt,
01194                           const YCPTerm & term, const YCPList & optList, int argnr );
01195 
01200     YWidget *createProgressBar( YWidget *parent, YWidgetOpt & opt,
01201                                 const YCPTerm & term, const YCPList & optList, int argnr );
01202 
01207     YWidget *createImage( YWidget *parent, YWidgetOpt & opt,
01208                           const YCPTerm & term, const YCPList & optList, int argnr );
01209 
01214     YWidget *createIntField( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01215                              const YCPList & optList, int argnr );
01216 
01221     YWidget *createPackageSelector( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01222                                     const YCPList & optList, int argnr );
01223 
01228     YWidget *createPkgSpecial( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01229                                const YCPList & optList, int argnr );
01230 
01235     YWidget *createWizard( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01236                            const YCPList & optList, int argnr );
01237     
01242     YWidget *createDummySpecialWidget( YWidget *parent, YWidgetOpt & opt,
01243                                        const YCPTerm & term, const YCPList & optList, int argnr );
01244 
01249     YWidget *createDownloadProgress( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01250                                      const YCPList & optList, int argnr );
01251 
01256     YWidget *createBarGraph( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01257                              const YCPList & optList, int argnr );
01258 
01263     YWidget *createColoredLabel( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01264                                  const YCPList & optList, int argnr );
01265 
01270     YWidget *createDumbTab( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01271                             const YCPList & optList, int argnr, YRadioButtonGroup * rbg );
01272 
01277     YWidget *createSlider( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01278                            const YCPList & optList, int argnr );
01279 
01284     YWidget *createPartitionSplitter( YWidget *parent, YWidgetOpt & opt, const YCPTerm & term,
01285                                       const YCPList & optList, int argnr );
01286 
01287 
01288 
01296     YCPValue getWidgetId( const YCPTerm & term, int *argnr );
01297 
01309     YCPList getWidgetOptions( const YCPTerm & term, int *argnr );
01310 
01316     void logUnknownOption( const YCPTerm & term, const YCPValue & option );
01317 
01324     void rejectAllOptions( const YCPTerm & term, const YCPList & optList );
01325 
01329     void registerDialog( YDialog * );
01330 
01334     void removeDialog();
01335 
01342     bool checkId( const YCPValue & val, bool complain = true ) const;
01343 
01349     bool isSymbolOrId( const YCPValue & val ) const;
01350 
01355     YCPValue getId( const YCPValue & v ) const;
01356 
01360     void deleteMacroRecorder();
01361 
01365     void deleteMacroPlayer();
01366 
01370     void playNextMacroBlock();
01371 
01375     typedef vector<YDialog *> dialogstack_type;
01376 
01381     dialogstack_type dialogstack;
01382 
01386     long long id_counter;
01387 
01391     bool with_threads;
01392 
01396     pthread_t ui_thread;
01397 
01405     YUIBuiltinCallData _builtinCallData;
01406 
01412     int pipe_to_ui[2];
01413 
01419     int pipe_from_ui[2];
01420 
01427     bool terminate_ui_thread;
01428 
01432     string _moduleName;
01433 
01437     string _productName;
01438 
01442     YMacroRecorder *macroRecorder;
01443 
01447     YMacroPlayer *macroPlayer;
01448 
01452     deque<YCPValue> fakeUserInputQueue;
01453 
01457     YCPMap default_fkeys;
01458 
01463     bool _events_blocked;
01464 
01469     static bool _reverseLayout;
01470 
01474     Y2Component * _callback;
01475 };
01476 
01477 #endif // YUI_h

Generated on Fri Nov 9 18:15:23 2007 for yast2-core by doxygen 1.3.6