#!/bin/sh # # Common helper functions used by the other scripts # # Copyright 1999-2000 Trolltech AS. All rights reserved. # function print_example_usage { cat << END Example of what you do: ~/qpe$ q_add_application foo Foo MyFooBarApp "A FooBar Application" ~/qpe$ cd foo ~/qpe/foo$ q_add_class foo Bar ~/qpe/foo$ q_add_function public: void Bar::barFoo "( int a, int b )" ~/qpe/foo$ q_add_variable private: int Bar::fooBarInt END } function print_copyright_header { cat << END /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** 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. ** **********************************************************************/ END } function print_main_file { print_copyright_header cat << END #include #include #include "$NEW_CLASS_HEADER_FILE" int main( int argc, char ** argv ) { QPEApplication a( argc, argv ); $NEW_CLASS_NAME *m = new $NEW_CLASS_NAME(); a.setMainWidget( m ); m->show(); return a.exec(); } END } function print_source_file { print_copyright_header cat << END #include #include #include "$NEW_CLASS_HEADER_FILE" $NEW_CLASS_NAME::$NEW_CLASS_NAME( QWidget *parent=0, const char *name=0, WFlags f = 0) : QWidget( parent, name, f ) { } void $NEW_CLASS_NAME::exampleFunction( ) { } END } function print_header_file { print_copyright_header cat << END #ifndef $NEW_CLASS_HEADER_DEFINE #define $NEW_CLASS_HEADER_DEFINE #include class $NEW_CLASS_NAME : public QWidget { Q_OBJECT public: $NEW_CLASS_NAME( QWidget *parent=0, const char *name=0, WFlags f = 0); protected: void exampleFunction( ); private: int exampleVariable; }; #endif // $NEW_CLASS_HEADER_DEFINE END } function print_pro_file { cat << END TEMPLATE = app CONFIG = qt warn_on release DESTDIR = ../bin HEADERS = $NEW_CLASS_HEADER_FILE SOURCES = $NEW_CLASS_SOURCE_FILE $NEW_APP_MAIN_FILE INTERFACES = INCLUDEPATH += ../library DEPENDPATH += ../library LIBS += -lqpe TARGET = $NEW_APP_NAME END } function print_install_file { cat << END #!/bin/sh if [ a\$OPIEDIR = a ] then echo OPIEDIR must be set exit fi [ -f \$OPIEDIR/pics/$NEW_APP_ICON_FILE ] || cp $NEW_APP_ICON_FILE \$OPIEDIR/pics/ [ -f \$OPIEDIR/apps/$NEW_APP_DESKTOP_FILE ] || cp $NEW_APP_DESKTOP_FILE \$OPIEDIR/apps/ mv \$OPIEDIR/Makefile \$OPIEDIR/Makefile.orig sed "s/APPS=/&$NEW_APP_NAME \\\\\\\\ \\\\ /" \$OPIEDIR/Makefile.orig >> \$OPIEDIR/Makefile echo You may wish to move the desktop file in to echo an appropriate subdirectory of the menus. END } function print_desktop_file { cat << END [Desktop Entry] Type=Application Exec=$NEW_APP_NAME Icon=$NEW_APP_ICON_FILE Name=$NEW_APP_MENU_NAME Comment=$NEW_APP_DESCRIPTION END } function print_icon_file { XPM_NAME="$NEW_APP_NAME"_xpm cat << END /* XPM */ static char *$XPM_NAME[] = { "14 14 3 1", " c None", ". c #000000", "a c #FFFFFF", " ", " aaaaaaaaaaaa ", " a..........a ", " a..aaaaaa..a ", " a.a.aaaa.a.a ", " a.aa.aa.aa.a ", " a.aaa..aaa.a ", " a.aaa..aaa.a ", " a.aa.aa.aa.a ", " a.a.aaaa.a.a ", " a..aaaaaa..a ", " a..........a ", " aaaaaaaaaaaa ", " "}; END } function add_class_to_pro_file { cat << END HEADERS += $NEW_CLASS_HEADER_FILE SOURCES += $NEW_CLASS_SOURCE_FILE END } function get_number_of_lines { # Get the number of lines in the file LINES=`wc -l $ORIGINAL_CLASS_HEADER_FILE | cut -d " " -f 6` } function get_first_line_of_class_definition { # First look for class definition with Q_OBJECT a few lines below LINE=`grep -n -A 3 "class $EXISTING_CLASS_NAME " $ORIGINAL_CLASS_HEADER_FILE | grep "Q_OBJECT" | cut -d "-" -f 1` if [ -z "$LINE" ] then # else look for class definition with open brace on same line LINE=`grep -n "class $EXISTING_CLASS_NAME.*[{]" $ORIGINAL_CLASS_HEADER_FILE | cut -d ":" -f 1` #elif doesn't work here fi;if [ -z "$LINE" ] then # else look for class with open brace a few lines below LINE=`grep -n -A 3 "class $EXISTING_CLASS_NAME " $ORIGINAL_CLASS_HEADER_FILE | grep "\-.*[{]" | cut -d "-" -f 1` #elif doesn't work here fi }