Source: /app/hbasic/hbasic/src/package_manager.h
|
|
|
|
/* **************************************************************************
File: package_manager.h
Desc: Package editor dialog.
----------------------------------------------------------------------------
copyright : (C) 2001 HBasic project (Marcus Engels)
***************************************************************************/
/* **************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
/* ----------------------------------------------------------------------- */
/* Classlist: List of classes that will be defined in this source file. */
/* ----------------------------------------------------------------------- */
/*
* class CPackageManager: Package list editor widget.
*/
/* ----------------------------------------------------------------------- */
/* Changelog: Description of important changes within this file. */
/* Please report with date, maintainer and change description. */
/* ----------------------------------------------------------------------- */
#ifndef PACKAGE_EDIT_H
#define PACKAGE_EDIT_H
#include
#include
#include
#include
#include
#include
#include
#include "package_list.h"
class QTextEdit;
class CPackageManager;
class QLineEdit;
class HBObject;
class HBSubList;
#define LTYPE_PCKG_ENTRY 1
#define LTYPE_CLASS_ENTRY 2
#define LTYPE_NETCLASS_ENTRY 3
#define LTYPE_CONSTRUCTOR 4
#define LTYPE_QTCCLASS_ENTRY 5
#define LTYPE_HBOBJECT 6
#define LTYPE_MEMBER_EVENT 10
#define LTYPE_MEMBER_METHOD 11
#define LTYPE_MEMBER_FIELD 12
#define LTYPE_MEMBER_PINVOKE 13
#define LTYPE_MEMBER_REF 14
#define LTYPE_MEMBER_PROPERTY 15
#define LTYPE_MEMBER_OVERRIDE 16
/* Range 20..39 reserved for NET entries */
#define LTYPE_HBOBJECT_LIST 40
#define LTYPE_HBOBJECT_ENTRY 41
#define IL_HBOBJECT_NAME 42
/*
* Member kinds. pnet/include/il_program.h
*/
#define IL_META_MEMBERKIND_METHOD 1
#define IL_META_MEMBERKIND_FIELD 2
#define IL_META_MEMBERKIND_EVENT 3
#define IL_META_MEMBERKIND_PROPERTY 4
#define IL_META_MEMBERKIND_PINVOKE 5
#define IL_META_MEMBERKIND_OVERRIDE 6
#define IL_META_MEMBERKIND_REF 7
#define IL_HB_METHOD 20
#define IL_HB_PROPERTY 21
#define IL_HB_EVENT 22
#define IL_QT_METHOD 30
#define IL_QT_PROPERTY 31
#define IL_QT_EVENT 32
/**
* One entry in the listview of the package editor.
*/
class InfoListItem : public QCheckListItem
{
public:
short entry_type; // type of list entry
void *entry_info_ptr;
CPackageManager *my_parent;
InfoListItem( QListView *parent, CPackageManager *p_parent, PACKAGE_HEADER *entry_ptr, const QString &text, short new_item );
InfoListItem( InfoListItem *parent, QString text, short type, void *info_ptr );
InfoListItem( QListView *parent, QString text );
InfoListItem( InfoListItem *parent, QString text, short type );
InfoListItem( QListView *parent, QString text, short type, void *info_ptr );
private:
void setEntryPixmap( void );
void stateChange( bool new_value );
};
/**
* class CPackageManager: Package list editor widget.
*/
class CPackageManager : public QDialog
{
Q_OBJECT
public:
CPackageManager( void );
~CPackageManager( void );
void createNewLoadList( void );
void changeCheckedPackage( QListViewItem *lv_entry, QString name, QString path, bool new_value );
void displayQtcInfo( void );
void showPackagePath( PACKAGE_HEADER *package_entry );
void setQtcClass( char *class_name );
private:
void createPackageList( void );
void rebuild_hbobject_info( void );
void showComponents( PACKAGE_HEADER *pckg_desc_ptr );
void showComponentDefs( QListViewItem *select );
void showPackages( QListView *lv_modlist );
void showMemberFolders( short package_type );
void showHBObjectEntries( void );
void showHBObjectDefs( HBObject *parent_entry );
void showHBListEntries( HBSubList *parent_list );
void showPackageProperties( QMetaObject *qm );
void showPackageMethods( QMetaObject *qm );
void showPackageEvents( QMetaObject *qm );
void net_show_class_info( QListView *lv_classinfo );
void net_show_class_member( QListViewItem *selected_entry );
void rebuild_qtc_classinfo( void );
void showSoMemberInfo( PACKAGE_HEADER *pckg_ptr );
HBObject *findHBApplicationObject( QString *path, short *last_type, HBObject **last_object, char **last_name_start );
/* Display contents of package list in list view. */
void displayPackageList( void );
void resizeEvent( QResizeEvent *evt );
short show_detailed; // show detailed package list view
short display_hbobject;
short load_list_changed;
QString hbobject_class_base;
QGroupBox *package_frame; /* Frame widget for package_list */
QPushButton *btn_import;
QPushButton *btn_ok;
QPushButton *btn_delete;
QPushButton *btn_expand;
QPushButton *btn_on_startup;
QPushButton *btn_folder_up;
QLineEdit *le_current_object;
QListView *lv_pckglist; // package list
QListView *lv_classlist; // member of net class
QListView *lv_members; // member of net class
/* Folder entries for normal packages */
InfoListItem *lv_elem_prop;
InfoListItem *lv_elem_method;
InfoListItem *lv_elem_event;
InfoListItem *lv_elem_field;
InfoListItem *lv_elem_override;
InfoListItem *lv_elem_pinvoke;
InfoListItem *lv_elem_ref;
PACKAGE_HEADER *current_package;
void loadPackageInfo( void );
private slots:
void slotHidePackage( void );
void slot_detailed_package_view( void );
void slotMemberClicked( QListViewItem *new_select );
void slot_load_on_startup( void );
void slotFolderUp( void );
void loadPackageDlg( void );
void pckg_selection_changed( QListViewItem * );
void class_selection_changed( QListViewItem *new_select );
};
#endif
Generated by: root on linux on Sun Jul 13 18:06:35 2003, using kdoc 2.0a54. |