⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rc2ui.cpp

📁 Trolltech公司发布的基于C++图形开发环境
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		    if ( styles.contains("BS_AUTOCHECKBOX") ||			 styles.contains("BS_3STATE") )			ID = IDCheckBox;		    else if ( styles.contains("BS_AUTORADIOBUTTON") )			ID = IDRadioButton;		} else if ( controlType == "msctls_updown32" ) {		    ID = IDSpinBox;		} else if ( controlType == "msctls_progress32" ) {		    ID = IDProgressBar;		} else if ( controlType == "msctls_trackbar32" ) {		    ID = IDSlider;		} else if ( controlType == "SysListView32" ) {		    ID = IDIconView;		} else if ( controlType == "SysTreeView32" ) {		    ID = IDListView;		} else if ( controlType == "SysTabControl32" ) {		    ID = IDTabWidget;		} else if ( controlType == "SysAnimate32" ) {		    ID = IDLabel;		} else if ( controlType == "RICHEDIT" ) {		    ID = IDMultiLineEdit;		} else if ( controlType == "ComboBoxEx32" ) {		    ID = IDComboBox;		} else if ( controlType == "" ) {		    ID = IDCustom;		} else {		    ID = IDUnknown;		}	    } else		ID = IDUnknown;	    if ( hasText )		widgetText = stripQM(parseNext( arguments ));	    if ( isControl ) {		x = parseNext( arguments ).toInt();		y = parseNext( arguments ).toInt();		w = parseNext( arguments ).toInt();		h = parseNext( arguments ).toInt();	    } else {		widgetID = parseNext( arguments );		x = parseNext( arguments ).toInt();		y = parseNext( arguments ).toInt();		w = parseNext( arguments ).toInt();		h = parseNext( arguments ).toInt();		styles.clear();	    }	    do {		extendedStyles = splitStyles(parseNext( arguments ));		for ( uint i = 0; i < extendedStyles.count(); i++ )		    styles << (*extendedStyles.at(i));	    } while ( arguments.find(',') > -1 );	    switch ( ID ) {	    case IDWidget:		break;	    case IDPushButton: 		{		    writeClass("QPushButton");		    writeCString( "name", useName("PushButton_"+widgetID) );		    writeRect( "geometry", x, y, w, h );		    writeString( "text", widgetText );		    if ( widgetType == "DEFPUSHBUTTON" )			writeBool( "default", TRUE );		}		break;	    case IDLabel:		{		    isFrame = TRUE,		    writeClass("QLabel");		    writeCString( "name", useName("Label_"+widgetID) );		    writeRect( "geometry", x,y,w,h );		    writeString( "text", widgetText );		    QString align;		    if ( !styles.contains("SS_CENTERIMAGE") )			align += "|AlignTop";		    else			align += "|AlignVCenter";		    if ( widgetType == "LTEXT" ) {			align += "|AlignLeft";		    } else if ( widgetType == "CTEXT") {			align += "|AlignHCenter";		    } else if ( widgetType == "RTEXT") {			align += "|AlignRight";		    }		    writeSet("alignment", align );		}		break;	    case IDCheckBox:		{		    writeClass("QCheckBox");		    writeCString("name", useName("CheckBox_"+widgetID) );		    writeRect("geometry", x,y,w,h);		    writeString("text", widgetText );		    if ( styles.contains( "BS_3STATE" ) )			writeBool( "tristate", TRUE );		}		break;	    case IDRadioButton:		{		    writeClass("QRadioButton");		    writeCString("name", useName("RadioButton_"+widgetID) );		    writeRect("geometry", x,y,w,h);		    writeString("text", widgetText );		}		break;	    case IDGroupBox:		{		    isFrame = TRUE;		    writeClass("QGroupBox");		    writeCString( "name", useName("GroupBox_"+widgetID) );		    writeRect( "geometry", x,y,w,h );		    writeString( "title", widgetText );		    if ( !styles.contains( "WS_BORDER" ) )			styles.append( "WS_BORDER" );		}		break;	    case IDLineEdit:		{		    if ( !styles.contains("ES_MULTILINE") ) {			writeClass("QLineEdit");			writeCString( "name", useName("LineEdit_"+widgetID) );		    } else {			writeClass("QMultiLineEdit");			writeCString( "name", useName("MultiLineEdit_"+widgetID) );		    }		    writeRect( "geometry", x,y,w,h );		    QString align = "AlignTop";		    if ( styles.contains("ES_CENTER") )			align+="|AlignHCenter";		    else if ( styles.contains("ES_RIGHT") )			align+="|AlignRight";		    else			align+="|AlignLeft";		    writeSet("alignment", align);		}		break;	    case IDMultiLineEdit:		{		    writeClass("QMultiLineEdit");		    writeCString("name", useName("MultiLineEdit_"+widgetID) );		    writeRect("geometry", x,y,w,h );		}		break;	    case IDIconView:		{		    isFrame = TRUE;		    writeClass("QIconView");		    writeCString("name", useName("IconView_"+widgetID) );		    writeRect("geometry", x,y,w,h );		    if ( !styles.contains( "LVS_SINGLESEL" ) )			writeEnum( "selectionMode", "Extended" );		    if ( styles.contains( "LVS_NOLABELWRAP" ) )			writeBool("wordWrapIconText", FALSE );		}		break;	    case IDListView:		{		    isFrame = TRUE;		    writeClass("QListView");		    writeCString("name", useName("ListView_"+widgetID) );		    writeRect("geometry", x,y,w,h );		    if ( styles.contains( "TVS_LINESATROOT" ) )			writeBool( "rootIsDecorated", TRUE );		    if ( styles.contains( "TVS_FULLROWSELECT" ) )			writeBool( "allColumnsShowFocus", TRUE );		}		break;	    case IDProgressBar:		{		    isFrame = TRUE;		    writeClass("QProgressBar");		    writeCString("name", useName("ProgressBar_"+widgetID) );		    writeRect("geometry", x,y,w,h );		    if ( styles.contains("TBS_VERT") )			writeEnum("orientation", "Vertical");		    else			writeEnum("orientation", "Horizontal");		}		break;	    case IDTabWidget:		{		    writeClass("QTabWidget");		    writeCString("name", useName("TabWidget_"+widgetID) );		    writeRect("geometry", x,y,w,h );		    wi(); *out << "<widget>" << endl; indent();		    writeClass("QWidget");		    wi(); *out << "<attribute>" << endl; indent();		    wi(); *out << "<name>title</name>" << endl;		    wi(); *out << "<string>Tab1</string>" << endl; undent();		    wi(); *out << "</attribute>" << endl; undent();		    wi(); *out << "</widget>" << endl;		}		break;	    case IDSpinBox:		{		    isFrame = TRUE;		    writeClass("QSpinBox");		    writeCString("name", useName("SpinBox_"+widgetID) );		    writeRect("geometry", x,y,w,h);		}		break;	    case IDSlider:		{		    writeClass("QSlider");		    writeCString("name", useName("Slider_"+widgetID) );		    writeRect("geometry", x,y,w,h );		    if ( styles.contains("TBS_VERT") )			writeEnum("orientation", "Vertical");		    else			writeEnum("orientation", "Horizontal");		    if ( !styles.contains("TBS_NOTICKS") )			writeEnum("tickmarks", "Left" );		}		break;	    case IDComboBox:		{		    writeClass("QComboBox");		    writeCString("name", useName("ComboBox_"+widgetID) );		    if ( isControl )			writeRect( "geometry", x,y,w,14 );		    else 			writeRect( "geometry", x,y,w,h );		}		break;	    case IDListBox:		{		    isFrame = TRUE;		    writeClass("QListBox");		    writeCString("name", useName("ListBox_"+widgetID) );		    writeRect( "geometry", x,y,w,h );		    if ( styles.contains("WS_HSCROLL") )			writeEnum("hScrollBarMode", "Auto");		    else			writeEnum("hScrollBarMode", "AlwaysOff");		    if ( styles.contains("WS_VSCROLL") )			writeEnum("vScrollBarMode", "Auto");		    else			writeEnum("vScrollBarMode", "AlwaysOff");		    if ( styles.contains("LBS_EXTENDEDSEL") )			writeEnum("selectionMode", "Extended");		    else if ( styles.contains("LBS_MULTIPLESEL") )			writeEnum("selectionMode", "Multi");		    else if ( styles.contains("LBS_NOSEL") )			writeEnum("selectionMode", "NoSelection");		    else 			writeEnum("selectionMode", "Single");		    if ( !styles.contains( "NO WS_BORDER" ) )			styles.append( "WS_BORDER" );		}		break;	    case IDScrollBar:		{		    writeClass("QScrollBar");		    writeCString("name", useName("ScrollBar_"+widgetID) );		    writeRect("geometry", x,y,w,h );		    if ( styles.contains("SBS_VERT") )			writeEnum("orientation", "Vertical");		    else			writeEnum("orientation", "Horizontal");		}		break;	    case IDCustom:		{		    writeClass("QLabel");		    writeCString("name", useName("Custom_"+widgetID) );		    writeRect("geometry", x,y,w,h );		    writeString("text", "Create a custom widget and place it here." );		}	    default:		{		    writeClass("QLabel");		    writeCString("name", useName("Unknown_"+widgetID) );		    writeRect("geometry", x,y,w,h );		    writeString("text", QString("No support for %1.").arg(controlType) );		}		break;	    }	    writeStyles( styles, isFrame );	    styles.clear();	    undent();	    wi(); *out << "</widget>" << endl;	} while ( line != "END" );	undent();	wi(); *out << "</widget>" << endl;	*out << "</UI>" << endl;	do {	    line = in->readLine();	} while ( line.isEmpty() );	if ( !writeToFile )	    target.append( buffer.copy() );	if (out) {	    delete out;	    out = 0;	}	fileOut.close();	if ( writeToFile )	    printf( QDir::currentDirPath() + "/" + fileOut.name() + '\n' );    } while ( line != blockStart1 );    return TRUE;}/*! Not yet implemented*/bool RC2UI::makeBitmap(){    return TRUE;}/*! Not yet implemented*/bool RC2UI::makeAccelerator(){    return TRUE;}/*! Not yet implemented*/bool RC2UI::makeCursor(){    return TRUE;}/*! Not yet implemented*/bool RC2UI::makeHTML(){    return TRUE;}/*! Not yet implemented*/bool RC2UI::makeIcon(){    return TRUE;}/*!   Writes a stringtable from the input stream to a c++ header file.  All strings are assigned using QT_TR_NOOP to enable easy translation.*/bool RC2UI::makeStringTable(){    if ( !writeToFile )	return TRUE;    QFile fileOut;    line = in->readLine();    do {	char stringtable[256];	char discard[12];	sscanf( line, "%s %s", stringtable, discard );	if ( QString(stringtable) != "STRINGTABLE" )	    return TRUE;	do {	    line = in->readLine();	} while ( line != "BEGIN" );	QString outputFile = QString(stringtable).lower() + ".h";	if (outputFile ) {	    fileOut.setName( outputFile );	    if (!fileOut.open( IO_WriteOnly ) )		qFatal( "rc2ui: Could not open output file '%s'", outputFile.latin1() );	    out = new QTextStream( &fileOut );	}	*out << "#ifndef STRINGTABLE_H" << endl;	*out << "#define STRINGTABLE_H" << endl;	*out << endl;	*out << "#include <qstring.h>" << endl;	*out << "#include <qobject.h>" << endl;	*out << endl;	QString ID;	QString value;	do {	    line = in->readLine().stripWhiteSpace();	    if ( line == "END" )		continue;	    	    ID = parseNext(line, ' ');	    value = parseNext(line).stripWhiteSpace();	    *out << "static const QString " << ID << "= QT_TR_NOOP(" << value << ");" << endl;	} while ( line != "END" );	*out << endl;	*out << "#endif // STRINGTABLE_H" << endl;	do {	    line = in->readLine();	} while ( line.isEmpty() );	if ( out ) {	    delete out;	    out = 0;	}    } while ( line != blockStart1 );    return TRUE;}/*! Not yet implemented*/bool RC2UI::makeVersion(){    return TRUE;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -