summaryrefslogtreecommitdiff
path: root/basctl/source/basicide/moduldlg.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'basctl/source/basicide/moduldlg.hxx')
-rw-r--r--basctl/source/basicide/moduldlg.hxx276
1 files changed, 276 insertions, 0 deletions
diff --git a/basctl/source/basicide/moduldlg.hxx b/basctl/source/basicide/moduldlg.hxx
new file mode 100644
index 000000000000..f9efa779357e
--- /dev/null
+++ b/basctl/source/basicide/moduldlg.hxx
@@ -0,0 +1,276 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _MODULDLG_HXX
+#define _MODULDLG_HXX
+
+#include <svheader.hxx>
+
+#include <bastype2.hxx>
+#include <vcl/dialog.hxx>
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <vcl/fixed.hxx>
+#include <svtools/svtabbx.hxx>
+#include <vcl/tabdlg.hxx>
+#include <vcl/tabpage.hxx>
+#include "com/sun/star/task/XInteractionHandler.hpp"
+
+#include <vcl/tabctrl.hxx>
+#include <vcl/lstbox.hxx>
+
+class StarBASIC;
+
+
+#define NEWOBJECTMODE_LIB 1
+#define NEWOBJECTMODE_MOD 2
+#define NEWOBJECTMODE_DLG 3
+#define NEWOBJECTMODE_METH 4
+
+class NewObjectDialog : public ModalDialog
+{
+private:
+ FixedText aText;
+ Edit aEdit;
+ OKButton aOKButton;
+ CancelButton aCancelButton;
+
+ DECL_LINK(OkButtonHandler, Button *);
+
+public:
+ NewObjectDialog(Window * pParent, USHORT nMode, bool bCheckName = false);
+ ~NewObjectDialog();
+
+ String GetObjectName() const { return aEdit.GetText(); }
+ void SetObjectName( const String& rName ) { aEdit.SetText( rName ); aEdit.SetSelection( Selection( 0, rName.Len() ) );}
+};
+
+class ExportDialog : public ModalDialog
+{
+private:
+ RadioButton maExportAsPackageButton;
+ RadioButton maExportAsBasicButton;
+ OKButton maOKButton;
+ CancelButton maCancelButton;
+
+ sal_Bool mbExportAsPackage;
+
+ DECL_LINK(OkButtonHandler, Button *);
+
+public:
+ ExportDialog( Window * pParent );
+ ~ExportDialog();
+
+ sal_Bool isExportAsPackage( void ) { return mbExportAsPackage; }
+};
+
+
+class ExtBasicTreeListBox : public BasicTreeListBox
+{
+protected:
+ virtual BOOL EditingEntry( SvLBoxEntry* pEntry, Selection& rSel );
+ virtual BOOL EditedEntry( SvLBoxEntry* pEntry, const String& rNewText );
+
+ virtual DragDropMode NotifyStartDrag( TransferDataContainer& rData, SvLBoxEntry* pEntry );
+ virtual BOOL NotifyAcceptDrop( SvLBoxEntry* pEntry );
+
+ virtual BOOL NotifyMoving( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
+ SvLBoxEntry*& rpNewParent, ULONG& rNewChildPos );
+ virtual BOOL NotifyCopying( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
+ SvLBoxEntry*& rpNewParent, ULONG& rNewChildPos );
+ BOOL NotifyCopyingMoving( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
+ SvLBoxEntry*& rpNewParent, ULONG& rNewChildPos, BOOL bMove );
+
+public:
+ ExtBasicTreeListBox( Window* pParent, const ResId& rRes );
+ ~ExtBasicTreeListBox();
+};
+
+#define LIBMODE_CHOOSER 1
+#define LIBMODE_MANAGER 2
+
+class BasicCheckBox : public SvTabListBox
+{
+private:
+ USHORT nMode;
+ SvLBoxButtonData* pCheckButton;
+ ScriptDocument m_aDocument;
+ void Init();
+
+public:
+ BasicCheckBox( Window* pParent, const ResId& rResId );
+ ~BasicCheckBox();
+
+ SvLBoxEntry* DoInsertEntry( const String& rStr, ULONG nPos = LISTBOX_APPEND );
+ SvLBoxEntry* FindEntry( const String& rName );
+
+ void CheckEntryPos( ULONG nPos, BOOL bCheck = TRUE );
+ BOOL IsChecked( ULONG nPos ) const;
+
+ virtual void InitEntry( SvLBoxEntry*, const XubString&, const Image&, const Image&, SvLBoxButtonKind eButtonKind );
+ virtual BOOL EditingEntry( SvLBoxEntry* pEntry, Selection& rSel );
+ virtual BOOL EditedEntry( SvLBoxEntry* pEntry, const String& rNewText );
+
+ void SetDocument( const ScriptDocument& rDocument ) { m_aDocument = rDocument; }
+
+ void SetMode( USHORT n );
+ USHORT GetMode() const { return nMode; }
+};
+
+class LibDialog: public ModalDialog
+{
+private:
+ OKButton aOKButton;
+ CancelButton aCancelButton;
+ FixedText aStorageName;
+ BasicCheckBox aLibBox;
+ FixedLine aFixedLine;
+ CheckBox aReferenceBox;
+ CheckBox aReplaceBox;
+
+public:
+ LibDialog( Window* pParent );
+ ~LibDialog();
+
+ void SetStorageName( const String& rName );
+
+ BasicCheckBox& GetLibBox() { return aLibBox; }
+ BOOL IsReference() const { return aReferenceBox.IsChecked(); }
+ BOOL IsReplace() const { return aReplaceBox.IsChecked(); }
+
+ void EnableReference( BOOL b ) { aReferenceBox.Enable( b ); }
+ void EnableReplace( BOOL b ) { aReplaceBox.Enable( b ); }
+};
+
+
+class OrganizeDialog : public TabDialog
+{
+private:
+ TabControl aTabCtrl;
+ BasicEntryDescriptor m_aCurEntry;
+
+public:
+ OrganizeDialog( Window* pParent, INT16 tabId, BasicEntryDescriptor& rDesc );
+ ~OrganizeDialog();
+
+ virtual short Execute();
+
+ DECL_LINK( ActivatePageHdl, TabControl * );
+};
+
+class ObjectPage: public TabPage
+{
+protected:
+ FixedText aLibText;
+ ExtBasicTreeListBox aBasicBox;
+ PushButton aEditButton;
+ CancelButton aCloseButton;
+ PushButton aNewModButton;
+ PushButton aNewDlgButton;
+ PushButton aDelButton;
+
+ DECL_LINK( BasicBoxHighlightHdl, BasicTreeListBox * );
+ DECL_LINK( ButtonHdl, Button * );
+ void CheckButtons();
+ bool GetSelection( ScriptDocument& rDocument, String& rLibName );
+ void DeleteCurrent();
+ void NewModule();
+ void NewDialog();
+ void EndTabDialog( USHORT nRet );
+
+ TabDialog* pTabDlg;
+
+ virtual void ActivatePage();
+ virtual void DeactivatePage();
+
+public:
+ ObjectPage( Window* pParent, const ResId& rResId, USHORT nMode );
+
+ void SetCurrentEntry( BasicEntryDescriptor& rDesc );
+ void SetTabDlg( TabDialog* p ) { pTabDlg = p;}
+};
+
+
+class SvxPasswordDialog;
+
+class LibPage: public TabPage
+{
+protected:
+ FixedText aBasicsText;
+ ListBox aBasicsBox;
+ FixedText aLibText;
+ BasicCheckBox aLibBox;
+ PushButton aEditButton;
+ CancelButton aCloseButton;
+ PushButton aPasswordButton;
+ PushButton aExportButton;
+ PushButton aNewLibButton;
+ PushButton aInsertLibButton;
+ PushButton aDelButton;
+
+ ScriptDocument m_aCurDocument;
+ LibraryLocation m_eCurLocation;
+
+ DECL_LINK( TreeListHighlightHdl, SvTreeListBox * );
+ DECL_LINK( BasicSelectHdl, ListBox * );
+ DECL_LINK( ButtonHdl, Button * );
+ DECL_LINK( CheckPasswordHdl, SvxPasswordDialog * );
+ void CheckButtons();
+ void DeleteCurrent();
+ void NewLib();
+ void InsertLib();
+ void implExportLib( const String& aLibName, const String& aTargetURL,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler );
+ void Export();
+ void ExportAsPackage( const String& aLibName );
+ void ExportAsBasic( const String& aLibName );
+ void EndTabDialog( USHORT nRet );
+ void FillListBox();
+ void InsertListBoxEntry( const ScriptDocument& rDocument, LibraryLocation eLocation );
+ void SetCurLib();
+ SvLBoxEntry* ImpInsertLibEntry( const String& rLibName, ULONG nPos );
+ virtual void ActivatePage();
+ virtual void DeactivatePage();
+
+ TabDialog* pTabDlg;
+
+public:
+ LibPage( Window* pParent );
+ virtual ~LibPage();
+
+ void SetTabDlg( TabDialog* p ) { pTabDlg = p;}
+};
+
+// Helper functions
+SbModule* createModImpl( Window* pWin, const ScriptDocument& rDocument,
+ BasicTreeListBox& rBasicBox, const String& rLibName, String aModName, bool bMain = false );
+void createLibImpl( Window* pWin, const ScriptDocument& rDocument,
+ BasicCheckBox* pLibBox, BasicTreeListBox* pBasicBox );
+
+#endif // _MODULDLG_HXX