Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillian Padovani Germano <wpgermano@gmail.com>2003-12-14 04:18:09 +0300
committerWillian Padovani Germano <wpgermano@gmail.com>2003-12-14 04:18:09 +0300
commit49021f7ec4bfc1313c6cdfeae1f9c32e98cc9cdc (patch)
tree44e7c4c38bc8c26b5efe0b52b846402589a4ca9a /source/blender/src/header_script.c
parent6653af79142aa929eb3d131f8fced363b2c4b828 (diff)
BPython - first step for better integration of Python in Blender:
- add a new space: Space Script - add a new dna struct: Script - add these two properly everywhere they are meant to It's not a tiny commit, but most of it is ground work for what is still to be done. Right now the benefits should be: freeing the Text Editor to be used in a window even while a script w/ gui in "on" and letting more than one currently running script w/ gui be accessible from each window Some files are added, so some build systems (not autotools) will need updates
Diffstat (limited to 'source/blender/src/header_script.c')
-rw-r--r--source/blender/src/header_script.c162
1 files changed, 162 insertions, 0 deletions
diff --git a/source/blender/src/header_script.c b/source/blender/src/header_script.c
new file mode 100644
index 00000000000..e66fea68cf4
--- /dev/null
+++ b/source/blender/src/header_script.c
@@ -0,0 +1,162 @@
+/**
+ * header_script.c nov-2003
+ *
+ * Functions to draw the "Script Window" window header
+ * and handle user events sent to it.
+ *
+ * $Id$
+ *
+ * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ *
+ * 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. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * Contributor(s): Willian P. Germano.
+ *
+ * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef WIN32
+#include "BLI_winstuff.h"
+#endif
+
+#include "BMF_Api.h"
+#include "BIF_language.h"
+#ifdef INTERNATIONAL
+#include "FTF_Api.h"
+#endif
+
+#include "BSE_headerbuttons.h"
+
+#include "DNA_ID.h"
+#include "DNA_screen_types.h"
+#include "DNA_space_types.h"
+#include "DNA_script_types.h"
+
+#include "BIF_interface.h"
+#include "BIF_resources.h"
+#include "BIF_screen.h"
+#include "BIF_space.h"
+#include "BIF_toolbox.h"
+#include "BKE_global.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_sca.h"
+#include "BPY_extern.h"
+#include "BSE_filesel.h"
+
+#include "blendef.h"
+#include "mydevice.h"
+
+/* ********************** SCRIPT ****************************** */
+void do_script_buttons(unsigned short event)
+{
+ SpaceScript *sc= curarea->spacedata.first;
+ ID *id, *idtest;
+ int nr= 1;
+ Script *script;
+
+ if (!sc) return;
+ if (sc->spacetype != SPACE_SCRIPT) return;
+
+ switch (event) {
+ case B_SCRIPTBROWSE:
+ if (sc->menunr==-2) {
+ activate_databrowse((ID *)sc->script, ID_SCR, 0, B_SCRIPTBROWSE,
+ &sc->menunr, do_script_buttons);
+ break;
+ }
+ if(sc->menunr < 0) break;
+
+ script = sc->script;
+
+ nr = 1;
+ id = (ID *)script;
+
+ idtest= G.main->script.first;
+ while(idtest) {
+ if(nr==sc->menunr) {
+ break;
+ }
+ nr++;
+ idtest= idtest->next;
+ }
+ if(idtest!=id) {
+ sc->script= (Script *)idtest;
+
+ allqueue(REDRAWSCRIPT, 0);
+ allqueue(REDRAWHEADERS, 0);
+ }
+ break;
+ }
+
+ return;
+}
+
+void script_buttons(void)
+{
+ uiBlock *block;
+ SpaceScript *sc= curarea->spacedata.first;
+ short xco = 8;
+ char naam[256];
+
+ if (!sc || sc->spacetype != SPACE_SCRIPT) return;
+
+ sprintf(naam, "header %d", curarea->headwin);
+ block= uiNewBlock(&curarea->uiblocks, naam, UI_EMBOSSX, UI_HELV, curarea->headwin);
+
+ if(area_is_active_area(curarea)) uiBlockSetCol(block, TH_HEADER);
+ else uiBlockSetCol(block, TH_HEADERDESEL);
+
+ curarea->butspacetype= SPACE_SCRIPT;
+
+ uiDefIconTextButC(block, ICONTEXTROW,B_NEWSPACE, ICON_VIEW3D,
+ windowtype_pup(), xco,0,XIC+10,YIC, &(curarea->butspacetype), 1.0,
+ SPACEICONMAX, 0, 0, "Displays Current Window Type. Click for menu"
+ " of available types.");
+
+ /* FULL WINDOW */
+ xco= 25;
+ if(curarea->full)
+ uiDefIconBut(block, BUT,B_FULL, ICON_SPLITSCREEN, xco+=XIC,0,XIC,YIC, 0, 0,
+ 0, 0, 0, "Returns to multiple views window (CTRL+Up arrow)");
+ else
+ uiDefIconBut(block, BUT,B_FULL, ICON_FULLSCREEN, xco+=XIC,0,XIC,YIC, 0, 0,
+ 0, 0, 0, "Makes current window full screen (CTRL+Down arrow)");
+
+ /* STD SCRIPT BUTTONS */
+ xco+= 2*XIC;
+ xco= std_libbuttons(block, xco, 0, 0, NULL, B_SCRIPTBROWSE, (ID*)sc->script, 0, &(sc->menunr), 0, 0, 0, 0, 0);
+
+ /* always as last */
+ curarea->headbutlen= xco+2*XIC;
+
+ uiDrawBlock(block);
+}
+
+/* ********************** SCRIPT ****************************** */
+