Source: /app/hbasic/hbasic/src/package_manager.h


Annotated List
Files
Globals
Hierarchy
Index
/* **************************************************************************
 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.