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 
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     // Event handling, execution flow
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     // Widget creation functions - container widgets
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     // Widget creation functions - leaf widgets
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

Generated on Fri Jun 16 18:07:45 2006 for yast2-core by  doxygen 1.4.6