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


Annotated List
Files
Globals
Hierarchy
Index
/* **************************************************************************
 File: package_list.h
 Desc: Data structure for managing loaded packages and their components.
 ----------------------------------------------------------------------------
	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 PackageList : Data structure for managing packages and 
 *    their components.
 */

/* ----------------------------------------------------------------------- */
/* Changelog: Description of important changes within this file.           */
/*            Please report with date, maintainer and change description.  */
/* ----------------------------------------------------------------------- */

#ifndef PACKAGE_LIST_H
#define PACKAGE_LIST_H

#include "defines.h"
#include "structs.h"
#include 
#include 
#include "qdom.h"

class QListView;
class CPackageManager;
class CSourceEditWidget;

class InfoButton : public QPushButton
{
public:
	InfoButton( QWidget *parent, short new_doc_id );

	short my_doc_id;
};

/**
 *  class PackageList : Data structure for managing packages and 
 *    their components.
 */

class PackageList : public QObject
{ 
	Q_OBJECT

public:
	/* Constructor / Destructor for class */
	PackageList( void );

	/**
         * Find the package description for a given package id.
         */

	PACKAGE_HEADER *findPackage( short package_number );

	/**
         * Find the component description for a package given the 
         *   package id and component number.
         */
	SOCOMP_HEADER *findSoComponent( PACKAGE_HEADER *pckg_ptr, short comp_pos );
	SOCOMP_HEADER *findSoComponentName( PACKAGE_HEADER *pckg_ptr, char *find_name );

	/**
         * Find the package description for a given package name.
         */

	PACKAGE_HEADER *findPackageName( QString package_name );

	/* Find global method description for method name in readbuff. */
	short findSystemMethod( QWidget *parent, short text_line_height, short doc_id[20], CSourceEditWidget *parent_widget );

	/* Delete a package description from the list. */
	void deletePackage( PACKAGE_HEADER *new_package );
	/* Create description of loaded packages in file. */
	void createNewLoadList( void );
	/* Return first component in hbasic_stdgui (first package) for global functions. */
	void savePackageList( QFile *f );
	int getPckgFromSavepos( int save_pos );
	void resetSavePos( void );
	void createComponentPopup( CSourceEditWidget *src_wgt_ptr );
	void resetListViewEntries( void );
	void displayPackageList( CPackageManager *pckg_mgr );

	PACKAGE_HEADER *createPackageEntry( char *path, short *exists );

	/**
	 * Check if we find a static class method named like the 
	 * current string in readbuff.
	 */

	short isCompStaticMethod( FACT_DESC *expr_desc_ptr );
	PACKAGE_HEADER *openPackage( char *package_name, short package_type, short new_package_type );
	PACKAGE_HEADER *packageExists( char *package_name );
	short getCompId( void );
	void closeComponent( void );
	void coCreatePackageList( void );
	void coCreateConstantList( void );
	void createComponentTypes( void );
	void reposButtons( void );
	void findSelectedClass( QObject *event_source );
	int createTestComp( SOCOMP_HEADER *pckg_ptr );
	SOCOMP_HEADER *findVarType( short hbobject_allowed );
	void deleteAllPackages( void );
	void *findNetClassType( void );

	/* Display or hide all HBasic buttons in widget selection. */
	void showHBasicButtons( short button_state );

	/* Try to find matching member in so library */
	char *findSoMember( PACKAGE_HEADER **pckg_desc_ptr, short *member_type );
	void showSoClassList( QListView *lv_parent, PACKAGE_HEADER *pckg_ptr );

/* -------------------------------------------------------------- */

private:
	/* Handle for package that is currently loaded. */
	void *handle;

	/* global package list for package manager and package dialog. */
	QList package_list;

	short parseSoLibDescription( PACKAGE_HEADER *pckg_ptr );

	/* load members of shared object description */
	short loadSoPackage( PACKAGE_HEADER *pckg_ptr, char *package_name );

private slots:
	void slotInfoClicked( void );
};

#endif


Generated by: root on linux on Sun Jul 13 18:06:35 2003, using kdoc 2.0a54.