summaryrefslogtreecommitdiff
path: root/basctl
diff options
context:
space:
mode:
authorGergo Mocsi <gmocsi91@gmail.com>2013-07-23 23:00:55 +0200
committerGergo Mocsi <gmocsi91@gmail.com>2013-09-02 18:16:48 +0200
commit70ab744ccf047a90bee0506c6a60ade1935ece3d (patch)
tree1f84a5f1016decc5f0a9d725020cbcc1bd993115 /basctl
parent61ee2598b18890eb5798a3943fbedd22a24e7aea (diff)
GSOC work, ModalDialog instead of menu entry
Created a ModalDialog named CodeCompleteOptionsDlg to edit options for code completition/suggestion. Unimplemented features in it are disabled. The dialog window uses Glade .ui file. Change-Id: I1b59f386a9575aa25b38c5a1d7d1f020498a69ab
Diffstat (limited to 'basctl')
-rw-r--r--basctl/Library_basctl.mk1
-rw-r--r--basctl/UIConfig_basicide.mk1
-rw-r--r--basctl/source/basicide/baside2.cxx13
-rw-r--r--basctl/source/basicide/codecompleteoptionsdlg.cxx74
-rw-r--r--basctl/source/basicide/codecompleteoptionsdlg.hxx54
-rw-r--r--basctl/uiconfig/basicide/menubar/menubar.xml2
-rw-r--r--basctl/uiconfig/basicide/ui/codecompleteoptionsdlg.ui212
7 files changed, 347 insertions, 10 deletions
diff --git a/basctl/Library_basctl.mk b/basctl/Library_basctl.mk
index cff14f708498..480023041cbb 100644
--- a/basctl/Library_basctl.mk
+++ b/basctl/Library_basctl.mk
@@ -90,6 +90,7 @@ $(eval $(call gb_Library_add_exception_objects,basctl,\
basctl/source/basicide/linenumberwindow \
basctl/source/basicide/localizationmgr \
basctl/source/basicide/macrodlg \
+ basctl/source/basicide/codecompleteoptionsdlg \
basctl/source/basicide/moduldl2 \
basctl/source/basicide/moduldlg \
basctl/source/basicide/objdlg \
diff --git a/basctl/UIConfig_basicide.mk b/basctl/UIConfig_basicide.mk
index 013df6e2c99c..624f42683072 100644
--- a/basctl/UIConfig_basicide.mk
+++ b/basctl/UIConfig_basicide.mk
@@ -30,6 +30,7 @@ $(eval $(call gb_UIConfig_add_toolbarfiles,modules/BasicIDE,\
$(eval $(call gb_UIConfig_add_uifiles,modules/BasicIDE,\
basctl/uiconfig/basicide/ui/basicmacrodialog \
+ basctl/uiconfig/basicide/ui/codecompleteoptionsdlg \
))
# vim: set noet sw=4 ts=4:
diff --git a/basctl/source/basicide/baside2.cxx b/basctl/source/basicide/baside2.cxx
index 9687b75ac014..ef7c5c9eb75b 100644
--- a/basctl/source/basicide/baside2.cxx
+++ b/basctl/source/basicide/baside2.cxx
@@ -54,6 +54,7 @@
#include <cassert>
#include <basic/codecompletecache.hxx>
#include <svtools/miscopt.hxx>
+#include "codecompleteoptionsdlg.hxx"
namespace basctl
{
@@ -1013,8 +1014,8 @@ void ModulWindow::ExecuteCommand (SfxRequest& rReq)
break;
case SID_BASICIDE_CODECOMPLETITION:
{
- SFX_REQUEST_ARG(rReq, pItem, SfxBoolItem, rReq.GetSlot(), false);
- CodeCompleteOptions::SetCodeCompleteOn( pItem && pItem->GetValue() );
+ boost::scoped_ptr< CodeCompleteOptionsDlg > pDlg( new CodeCompleteOptionsDlg( this ) );
+ pDlg->Execute();
}
break;
case SID_CUT:
@@ -1166,15 +1167,9 @@ void ModulWindow::GetState( SfxItemSet &rSet )
case SID_BASICIDE_CODECOMPLETITION:
{
SvtMiscOptions aMiscOptions;
- if( aMiscOptions.IsExperimentalMode() )
- {
- rSet.Put(SfxBoolItem( nWh, CodeCompleteOptions::IsCodeCompleteOn() ));
- std::cerr <<"code complete set to: " << CodeCompleteOptions::IsCodeCompleteOn() << std::endl;
- }
- else
+ if( !aMiscOptions.IsExperimentalMode() )
{
rSet.Put( SfxVisibilityItem(nWh, false) );
- //CodeCompleteOptions::SetCodeCompleteOn( false );
}
}
break;
diff --git a/basctl/source/basicide/codecompleteoptionsdlg.cxx b/basctl/source/basicide/codecompleteoptionsdlg.cxx
new file mode 100644
index 000000000000..a948ab60e142
--- /dev/null
+++ b/basctl/source/basicide/codecompleteoptionsdlg.cxx
@@ -0,0 +1,74 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include "codecompleteoptionsdlg.hxx"
+#include <basic/codecompletecache.hxx>
+#include <svtools/miscopt.hxx>
+#include <basidesh.hrc>
+#include <iostream>
+
+namespace basctl
+{
+
+CodeCompleteOptionsDlg::CodeCompleteOptionsDlg( Window* pWindow )
+: ModalDialog(pWindow, "CodeCompleteOptionsDialog", "modules/BasicIDE/ui/codecompleteoptionsdlg.ui")
+{
+ get(pCancelBtn, "cancel");
+ get(pOkBtn, "ok");
+
+ get(pCodeCompleteChk, "codecomplete_enable");
+ get(pAutocloseProcChk, "autoclose_proc");
+ get(pAutocloseBracesChk, "autoclose_braces");
+ get(pAutocloseQuotesChk, "autoclose_quotes");
+
+ pOkBtn->SetClickHdl( LINK( this, CodeCompleteOptionsDlg, OkHdl ) );
+ pCancelBtn->SetClickHdl( LINK( this, CodeCompleteOptionsDlg, CancelHdl ) );
+
+ pCodeCompleteChk->Check(CodeCompleteOptions::IsCodeCompleteOn()); //set it on, if needed
+
+ pAutocloseProcChk->Enable( false );
+ pAutocloseBracesChk->Enable( false );
+ pAutocloseQuotesChk->Enable( false );
+}
+
+CodeCompleteOptionsDlg::~CodeCompleteOptionsDlg()
+{
+}
+
+IMPL_LINK_NOARG(CodeCompleteOptionsDlg, OkHdl)
+{
+ CodeCompleteOptions::SetCodeCompleteOn( pCodeCompleteChk->IsChecked() );
+ Close();
+ return 0;
+}
+
+IMPL_LINK_NOARG(CodeCompleteOptionsDlg, CancelHdl)
+{
+ Close();
+ return 0;
+}
+
+short CodeCompleteOptionsDlg::Execute()
+{
+ return ModalDialog::Execute();
+}
+
+} // namespace basctl
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basctl/source/basicide/codecompleteoptionsdlg.hxx b/basctl/source/basicide/codecompleteoptionsdlg.hxx
new file mode 100644
index 000000000000..9549b99a09f3
--- /dev/null
+++ b/basctl/source/basicide/codecompleteoptionsdlg.hxx
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef BASCTL_CODECOMPLETEOPTIONSDLG_HXX
+#define BASCTL_CODECOMPLETEOPTIONSDLG_HXX
+
+#include <vcl/button.hxx>
+#include <vcl/dialog.hxx>
+
+namespace basctl
+{
+
+class CodeCompleteOptionsDlg: public ModalDialog
+{
+private:
+ CancelButton* pCancelBtn;
+ OKButton* pOkBtn;
+
+ CheckBox* pCodeCompleteChk;
+ CheckBox* pAutocloseProcChk;
+ CheckBox* pAutocloseBracesChk;
+ CheckBox* pAutocloseQuotesChk;
+
+ DECL_LINK(OkHdl, void*);
+ DECL_LINK(CancelHdl, void*);
+
+public:
+ CodeCompleteOptionsDlg( Window* pWindow );
+ ~CodeCompleteOptionsDlg();
+
+ virtual short Execute();
+};
+
+} // namespace basctl
+
+#endif //BASCTL_CODECOMPLETEOPTIONSDLG_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basctl/uiconfig/basicide/menubar/menubar.xml b/basctl/uiconfig/basicide/menubar/menubar.xml
index 2e161305e628..2bb4220ca28d 100644
--- a/basctl/uiconfig/basicide/menubar/menubar.xml
+++ b/basctl/uiconfig/basicide/menubar/menubar.xml
@@ -61,7 +61,7 @@
<menu:menuitem menu:id=".uno:StatusBarVisible"/>
<menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
<menu:menuitem menu:id=".uno:ShowLines"/>
- <menu:menuitem menu:id=".uno:BasicCodeCompletition"/>
+ <menu:menuitem menu:id=".uno:CodeCompleteOptionsDialog"/>
<menu:menuitem menu:id=".uno:GotoLine"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:FullScreen"/>
diff --git a/basctl/uiconfig/basicide/ui/codecompleteoptionsdlg.ui b/basctl/uiconfig/basicide/ui/codecompleteoptionsdlg.ui
new file mode 100644
index 000000000000..83256b52ebae
--- /dev/null
+++ b/basctl/uiconfig/basicide/ui/codecompleteoptionsdlg.ui
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkDialog" id="CodeCompleteOptionsDialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Autocomplete Options</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area1">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ <property name="image_position">right</property>
+ <property name="has_default">True</property>
+ <property name="can_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame" id="frame1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkCheckButton" id="codecomplete_enable">
+ <property name="label" translatable="yes">Enable Code Completition</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Code Completition</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkCheckButton" id="autoclose_proc">
+ <property name="label" translatable="yes">Autoclose Procedures</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="autoclose_braces">
+ <property name="label" translatable="yes">Autoclose Braces</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="autoclose_quotes">
+ <property name="label" translatable="yes">Autoclose Quotes</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Code Suggestion</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-1">cancel</action-widget>
+ <action-widget response="0">ok</action-widget>
+ </action-widgets>
+ </object>
+</interface>