You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
6.8 KiB
182 lines
6.8 KiB
/**********************************************************************
|
|
** Copyright (C) 2000 Trolltech AS. All rights reserved.
|
|
** Copyright (c) 2001 Phil Thompson <phil@river-bank.demon.co.uk>
|
|
**
|
|
** This file is part of Qt Designer.
|
|
**
|
|
** This file may be distributed and/or modified under the terms of the
|
|
** GNU General Public License version 2 as published by the Free Software
|
|
** Foundation and appearing in the file LICENSE.GPL included in the
|
|
** packaging of this file.
|
|
**
|
|
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
|
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
**
|
|
** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
|
**
|
|
** Contact info@trolltech.com if any conditions of this licensing are
|
|
** not clear to you.
|
|
**
|
|
**********************************************************************/
|
|
|
|
#ifndef UIC_H
|
|
#define UIC_H
|
|
#include <tqdom.h>
|
|
#include <tqstring.h>
|
|
#include <tqstringlist.h>
|
|
#include <tqmap.h>
|
|
#include <tqtextstream.h>
|
|
#include <tqpalette.h>
|
|
|
|
|
|
class RubyIndent
|
|
{
|
|
public:
|
|
RubyIndent() : tabStop(4), current(0) {calc();}
|
|
|
|
void setTabStop(uint n) {tabStop = n; calc();}
|
|
void operator++() {++current; calc();}
|
|
void operator--() {--current; calc();}
|
|
operator TTQString() {return indstr;}
|
|
|
|
private:
|
|
uint tabStop;
|
|
uint current;
|
|
TTQString indstr;
|
|
|
|
void calc();
|
|
};
|
|
|
|
|
|
class Uic : public Qt
|
|
{
|
|
public:
|
|
Uic( const TTQString &fn, TTQTextStream& out, TTQDomDocument doc, bool subcl,
|
|
const TTQString &trm, const TTQString& subclname, bool omitForwardDecls,
|
|
TTQString &uicClass, bool useKDE );
|
|
|
|
static void setIndent(const RubyIndent &rubyind) {indent = rubyind;}
|
|
|
|
void createFormImpl( const TTQDomElement &e );
|
|
|
|
void createSubImpl( const TTQDomElement &e, const TTQString& subclname );
|
|
|
|
void createObjectDecl( const TTQDomElement& e );
|
|
void createAttrDecl( const TTQDomElement& e );
|
|
void createActionDecl( const TTQDomElement& e );
|
|
void createActionImpl( const TTQDomElement& e, const TTQString &parent );
|
|
void createToolbarImpl( const TTQDomElement &e, const TTQString &parentClass, const TTQString &parent );
|
|
void createMenuBarImpl( const TTQDomElement &e, const TTQString &parentClass, const TTQString &parent );
|
|
void createPopupMenuImpl( const TTQDomElement &e, const TTQString &parentClass, const TTQString &parent );
|
|
TTQString createObjectImpl( const TTQDomElement &e, const TTQString& parentClass, const TTQString& parent, const TTQString& layout = TTQString::null );
|
|
TTQString createLayoutImpl( const TTQDomElement &e, const TTQString& parentClass, const TTQString& parent, const TTQString& layout = TTQString::null );
|
|
TTQString createObjectInstance( const TTQString& objClass, const TTQString& parent, const TTQString& objName );
|
|
TTQString createSpacerImpl( const TTQDomElement &e, const TTQString& parentClass, const TTQString& parent, const TTQString& layout = TTQString::null );
|
|
void createExclusiveProperty( const TTQDomElement & e, const TTQString& exclusiveProp );
|
|
TTQString createListBoxItemImpl( const TTQDomElement &e, const TTQString &parent, TTQString *value = 0 );
|
|
TTQString createIconViewItemImpl( const TTQDomElement &e, const TTQString &parent );
|
|
TTQString createListViewColumnImpl( const TTQDomElement &e, const TTQString &parent, TTQString *value = 0 );
|
|
TTQString createTableRowColumnImpl( const TTQDomElement &e, const TTQString &parent, TTQString *value = 0 );
|
|
TTQString createListViewItemImpl( const TTQDomElement &e, const TTQString &parent,
|
|
const TTQString &parentItem );
|
|
void createColorGroupImpl( const TTQString& cg, const TTQDomElement& e );
|
|
TTQColorGroup loadColorGroup( const TTQDomElement &e );
|
|
|
|
TTQDomElement getObjectProperty( const TTQDomElement& e, const TTQString& name );
|
|
TTQString getPixmapLoaderFunction( const TTQDomElement& e );
|
|
TTQString getFormClassName( const TTQDomElement& e );
|
|
TTQString getClassName( const TTQDomElement& e );
|
|
TTQString getObjectName( const TTQDomElement& e );
|
|
TTQString getLayoutName( const TTQDomElement& e );
|
|
TTQString getInclude( const TTQString& className );
|
|
|
|
TTQString setObjectProperty( const TTQString& objClass, const TTQString& obj, const TTQString &prop, const TTQDomElement &e, bool stdset );
|
|
|
|
TTQString registerObject( const TTQString& name );
|
|
TTQString registeredName( const TTQString& name );
|
|
bool isObjectRegistered( const TTQString& name );
|
|
TTQStringList unique( const TTQStringList& );
|
|
|
|
TTQString trcall( const TTQString& sourceText, const TTQString& comment = "" );
|
|
|
|
static void embed( TTQTextStream& out, const char* project, const TTQStringList& images );
|
|
|
|
friend void getDBConnections(Uic& uic, TTQString& s);
|
|
static bool hasKDEwidget;
|
|
|
|
private:
|
|
void registerLayouts ( const TTQDomElement& e );
|
|
|
|
TTQTextStream& out;
|
|
TTQTextOStream trout;
|
|
TTQString languageChangeBody;
|
|
TTQStringList objectNames;
|
|
TTQMap<TTQString,TTQString> objectMapper;
|
|
TTQStringList tags;
|
|
TTQStringList layouts;
|
|
TTQString formName;
|
|
TTQString lastItem;
|
|
TTQString trmacro;
|
|
|
|
bool nofwd;
|
|
static RubyIndent indent;
|
|
|
|
struct Buddy
|
|
{
|
|
Buddy( const TTQString& k, const TTQString& b )
|
|
: key( k ), buddy( b ) {}
|
|
Buddy(){} // for valuelist
|
|
TTQString key;
|
|
TTQString buddy;
|
|
bool operator==( const Buddy& other ) const
|
|
{ return (key == other.key); }
|
|
};
|
|
struct CustomInclude
|
|
{
|
|
TTQString header;
|
|
TTQString location;
|
|
};
|
|
TTQValueList<Buddy> buddies;
|
|
|
|
TTQStringList layoutObjects;
|
|
bool isLayout( const TTQString& name ) const;
|
|
|
|
uint item_used : 1;
|
|
uint cg_used : 1;
|
|
uint pal_used : 1;
|
|
uint stdsetdef : 1;
|
|
uint externPixmaps : 1;
|
|
|
|
TTQString uiFileVersion;
|
|
TTQString nameOfClass;
|
|
TTQString pixmapLoaderFunction;
|
|
|
|
void registerDatabases( const TTQDomElement& e );
|
|
bool isWidgetInTable( const TTQDomElement& e, const TTQString& connection, const TTQString& table );
|
|
bool isFrameworkCodeGenerated( const TTQDomElement& e );
|
|
TTQString getDatabaseInfo( const TTQDomElement& e, const TTQString& tag );
|
|
void createFormImpl( const TTQDomElement& e, const TTQString& form, const TTQString& connection, const TTQString& table );
|
|
TTQStringList dbConnections;
|
|
TTQMap< TTQString, TTQStringList > dbCursors;
|
|
TTQMap< TTQString, TTQStringList > dbForms;
|
|
|
|
static bool isMainWindow;
|
|
static TTQString mkBool( bool b );
|
|
static TTQString mkBool( const TTQString& s );
|
|
bool toBool( const TTQString& s );
|
|
static TTQString fixString( const TTQString &str );
|
|
static bool onlyAscii;
|
|
static TTQString mkStdSet( const TTQString& prop );
|
|
static TTQString getComment( const TTQDomNode& n );
|
|
int defSpacing, defMargin;
|
|
TTQString fileName;
|
|
bool writeSlotImpl;
|
|
|
|
bool isEmptyFunction( const TTQString& fname );
|
|
TTQMap<TTQString, TTQString> functionImpls;
|
|
|
|
void rubySlot(TTQStringList::Iterator &it);
|
|
};
|
|
|
|
#endif
|