Add function uigetfont which calls a Java font chooser
Vincent Couvert [Thu, 27 Mar 2008 12:15:20 +0000 (12:15 +0000)]
20 files changed:
scilab/modules/gui/Makefile.am
scilab/modules/gui/Makefile.in
scilab/modules/gui/includes/CallFontChooser.h [new file with mode: 0644]
scilab/modules/gui/includes/gw_gui.h
scilab/modules/gui/sci_gateway/c/gw_gui.c
scilab/modules/gui/sci_gateway/c/sci_uigetfont.c [new file with mode: 0644]
scilab/modules/gui/sci_gateway/gui_gateway.xml
scilab/modules/gui/src/c/gui.vcproj
scilab/modules/gui/src/cpp/CallFontChooser.cpp [new file with mode: 0644]
scilab/modules/gui/src/cpp/CallFontChooser.hxx [new file with mode: 0644]
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/CallScilabBridge.java
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/ScilabBridge.java
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/fontchooser/SwingScilabFontChooser.java
scilab/modules/gui/src/java/org/scilab/modules/gui/fontchooser/FontChooser.java
scilab/modules/gui/src/java/org/scilab/modules/gui/fontchooser/ScilabFontChooser.java
scilab/modules/gui/src/java/org/scilab/modules/gui/fontchooser/ScilabFontChooserBridge.java
scilab/modules/gui/src/java/org/scilab/modules/gui/fontchooser/SimpleFontChooser.java
scilab/modules/gui/src/jni/CallScilabBridge.cpp
scilab/modules/gui/src/jni/CallScilabBridge.giws.xml
scilab/modules/gui/src/jni/CallScilabBridge.hxx

index 27126ec..0beb930 100644 (file)
@@ -35,6 +35,7 @@ src/cpp/CallJxclick.cpp \
 src/jni/Jxgetmouse.cpp \
 src/cpp/CallJxgetmouse.cpp \
 src/cpp/CallFileChooser.cpp \
+src/cpp/CallFontChooser.cpp \
 src/cpp/CallFigure.cpp \
 src/cpp/CallMessageBox.cpp \
 src/cpp/CallMainWindow.cpp \
@@ -129,7 +130,8 @@ sci_gateway/c/sci_mpopup.c \
 sci_gateway/c/sci_messagebox.c \
 sci_gateway/c/sci_waitbar.c \
 sci_gateway/c/sci_progressionbar.c \
-sci_gateway/c/sci_helpbrowser.c
+sci_gateway/c/sci_helpbrowser.c \
+sci_gateway/c/sci_uigetfont.c
 
 libscigui_la_CFLAGS=   -Isrc/c/ \
                        -Isrc/c/xsci/ \
@@ -213,6 +215,7 @@ includes/sci_raise_window.h \
 includes/GraphicWindow.h \
 includes/InitializeGUI.h \
 includes/CallFileChooser.h \
+includes/CallFontChooser.h \
 includes/CallFigure.h \
 includes/CallJxclick.h \
 includes/CallJxgetmouse.h \
index 0e668d6..60c75f0 100644 (file)
@@ -124,11 +124,12 @@ am__libscigui_la_SOURCES_DIST = src/nogui/nogui.c \
        sci_gateway/c/sci_uiwait.c sci_gateway/c/sci_mpopup.c \
        sci_gateway/c/sci_messagebox.c sci_gateway/c/sci_waitbar.c \
        sci_gateway/c/sci_progressionbar.c \
-       sci_gateway/c/sci_helpbrowser.c src/cpp/InitUIMenu.cpp \
-       src/jni/CallScilabBridge.cpp src/jni/Jxclick.cpp \
-       src/cpp/DestroyUIControl.cpp src/cpp/DestroyWaitBar.cpp \
-       src/cpp/CallJxclick.cpp src/jni/Jxgetmouse.cpp \
-       src/cpp/CallJxgetmouse.cpp src/cpp/CallFileChooser.cpp \
+       sci_gateway/c/sci_helpbrowser.c sci_gateway/c/sci_uigetfont.c \
+       src/cpp/InitUIMenu.cpp src/jni/CallScilabBridge.cpp \
+       src/jni/Jxclick.cpp src/cpp/DestroyUIControl.cpp \
+       src/cpp/DestroyWaitBar.cpp src/cpp/CallJxclick.cpp \
+       src/jni/Jxgetmouse.cpp src/cpp/CallJxgetmouse.cpp \
+       src/cpp/CallFileChooser.cpp src/cpp/CallFontChooser.cpp \
        src/cpp/CallFigure.cpp src/cpp/CallMessageBox.cpp \
        src/cpp/CallMainWindow.cpp src/cpp/CallWaitBar.cpp \
        src/cpp/CallHelpBrowser.cpp src/cpp/PushButton.cpp \
@@ -212,7 +213,8 @@ am__libscigui_la_SOURCES_DIST = src/nogui/nogui.c \
 @GUI_TRUE@     libscigui_la-sci_messagebox.lo \
 @GUI_TRUE@     libscigui_la-sci_waitbar.lo \
 @GUI_TRUE@     libscigui_la-sci_progressionbar.lo \
-@GUI_TRUE@     libscigui_la-sci_helpbrowser.lo
+@GUI_TRUE@     libscigui_la-sci_helpbrowser.lo \
+@GUI_TRUE@     libscigui_la-sci_uigetfont.lo
 @GUI_TRUE@am__objects_3 = libscigui_la-InitUIMenu.lo \
 @GUI_TRUE@     libscigui_la-CallScilabBridge.lo \
 @GUI_TRUE@     libscigui_la-Jxclick.lo \
@@ -222,6 +224,7 @@ am__libscigui_la_SOURCES_DIST = src/nogui/nogui.c \
 @GUI_TRUE@     libscigui_la-Jxgetmouse.lo \
 @GUI_TRUE@     libscigui_la-CallJxgetmouse.lo \
 @GUI_TRUE@     libscigui_la-CallFileChooser.lo \
+@GUI_TRUE@     libscigui_la-CallFontChooser.lo \
 @GUI_TRUE@     libscigui_la-CallFigure.lo \
 @GUI_TRUE@     libscigui_la-CallMessageBox.lo \
 @GUI_TRUE@     libscigui_la-CallMainWindow.lo \
@@ -587,6 +590,7 @@ JARMASK = *.jar
 @GUI_TRUE@src/jni/Jxgetmouse.cpp \
 @GUI_TRUE@src/cpp/CallJxgetmouse.cpp \
 @GUI_TRUE@src/cpp/CallFileChooser.cpp \
+@GUI_TRUE@src/cpp/CallFontChooser.cpp \
 @GUI_TRUE@src/cpp/CallFigure.cpp \
 @GUI_TRUE@src/cpp/CallMessageBox.cpp \
 @GUI_TRUE@src/cpp/CallMainWindow.cpp \
@@ -681,7 +685,8 @@ JARMASK = *.jar
 @GUI_TRUE@sci_gateway/c/sci_messagebox.c \
 @GUI_TRUE@sci_gateway/c/sci_waitbar.c \
 @GUI_TRUE@sci_gateway/c/sci_progressionbar.c \
-@GUI_TRUE@sci_gateway/c/sci_helpbrowser.c
+@GUI_TRUE@sci_gateway/c/sci_helpbrowser.c \
+@GUI_TRUE@sci_gateway/c/sci_uigetfont.c
 
 @GUI_FALSE@libscigui_la_CFLAGS = -Iincludes/ \
 @GUI_FALSE@                    -I$(top_srcdir)/modules/output_stream/includes
@@ -754,6 +759,7 @@ includes/sci_raise_window.h \
 includes/GraphicWindow.h \
 includes/InitializeGUI.h \
 includes/CallFileChooser.h \
+includes/CallFontChooser.h \
 includes/CallFigure.h \
 includes/CallJxclick.h \
 includes/CallJxgetmouse.h \
@@ -917,6 +923,7 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallFigure.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallFileChooser.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallFontChooser.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallHelpBrowser.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallJxclick.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallJxgetmouse.Plo@am__quote@
@@ -1015,6 +1022,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_uicontextmenu.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_uicontrol.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_uigetdir.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_uigetfont.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_uimenu.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_uiwait.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_unsetmenu.Plo@am__quote@
@@ -1350,6 +1358,13 @@ libscigui_la-sci_helpbrowser.lo: sci_gateway/c/sci_helpbrowser.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(libscigui_la_CFLAGS) $(CFLAGS) -c -o libscigui_la-sci_helpbrowser.lo `test -f 'sci_gateway/c/sci_helpbrowser.c' || echo '$(srcdir)/'`sci_gateway/c/sci_helpbrowser.c
 
+libscigui_la-sci_uigetfont.lo: sci_gateway/c/sci_uigetfont.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(libscigui_la_CFLAGS) $(CFLAGS) -MT libscigui_la-sci_uigetfont.lo -MD -MP -MF $(DEPDIR)/libscigui_la-sci_uigetfont.Tpo -c -o libscigui_la-sci_uigetfont.lo `test -f 'sci_gateway/c/sci_uigetfont.c' || echo '$(srcdir)/'`sci_gateway/c/sci_uigetfont.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libscigui_la-sci_uigetfont.Tpo $(DEPDIR)/libscigui_la-sci_uigetfont.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_uigetfont.c' object='libscigui_la-sci_uigetfont.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(libscigui_la_CFLAGS) $(CFLAGS) -c -o libscigui_la-sci_uigetfont.lo `test -f 'sci_gateway/c/sci_uigetfont.c' || echo '$(srcdir)/'`sci_gateway/c/sci_uigetfont.c
+
 .cpp.o:
 @am__fastdepCXX_TRUE@  $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCXX_TRUE@  mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@@ -1434,6 +1449,13 @@ libscigui_la-CallFileChooser.lo: src/cpp/CallFileChooser.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigui_la-CallFileChooser.lo `test -f 'src/cpp/CallFileChooser.cpp' || echo '$(srcdir)/'`src/cpp/CallFileChooser.cpp
 
+libscigui_la-CallFontChooser.lo: src/cpp/CallFontChooser.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigui_la-CallFontChooser.lo -MD -MP -MF $(DEPDIR)/libscigui_la-CallFontChooser.Tpo -c -o libscigui_la-CallFontChooser.lo `test -f 'src/cpp/CallFontChooser.cpp' || echo '$(srcdir)/'`src/cpp/CallFontChooser.cpp
+@am__fastdepCXX_TRUE@  mv -f $(DEPDIR)/libscigui_la-CallFontChooser.Tpo $(DEPDIR)/libscigui_la-CallFontChooser.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/CallFontChooser.cpp' object='libscigui_la-CallFontChooser.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigui_la-CallFontChooser.lo `test -f 'src/cpp/CallFontChooser.cpp' || echo '$(srcdir)/'`src/cpp/CallFontChooser.cpp
+
 libscigui_la-CallFigure.lo: src/cpp/CallFigure.cpp
 @am__fastdepCXX_TRUE@  $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigui_la-CallFigure.lo -MD -MP -MF $(DEPDIR)/libscigui_la-CallFigure.Tpo -c -o libscigui_la-CallFigure.lo `test -f 'src/cpp/CallFigure.cpp' || echo '$(srcdir)/'`src/cpp/CallFigure.cpp
 @am__fastdepCXX_TRUE@  mv -f $(DEPDIR)/libscigui_la-CallFigure.Tpo $(DEPDIR)/libscigui_la-CallFigure.Plo
diff --git a/scilab/modules/gui/includes/CallFontChooser.h b/scilab/modules/gui/includes/CallFontChooser.h
new file mode 100644 (file)
index 0000000..202afdc
--- /dev/null
@@ -0,0 +1,97 @@
+#ifndef __CALLFONTCHOOSER_H__
+#define __CALLFONTCHOOSER_H__
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008 - INRIA - Vincent COUVERT
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "BOOL.h"
+
+/**
+ * Create a new Font Chooser
+ *
+ * @param void  
+ * @return this ID of the Java Font Chooser
+ */
+int createFontChooser(void);
+
+/**
+ * Set the default font name of a Font Chooser
+ *
+ * @param fontChooserID the ID of the Java FontChooser
+ * @param fontName the name of the default font
+ */
+void setFontChooserFontName(int fontChooserID, char *fontName);
+
+/**
+ * Set the default font size of a Font Chooser
+ *
+ * @param fontChooserID the ID of the Java FontChooser
+ * @param fontSize the size of the default font
+ */
+void setFontChooserFontSize(int fontChooserID, int fontSize);
+
+/**
+ * Set the default bold attribute of a Font Chooser
+ *
+ * @param fontChooserID the ID of the Java FontChooser
+ * @param bold the bold attribute of the default font
+ */
+void setFontChooserBold(int fontChooserID, BOOL bold);
+
+/**
+ * Set the default italic attribute of a Font Chooser
+ *
+ * @param fontChooserID the ID of the Java FontChooser
+ * @param italic the italic attribute of the default font
+ */
+void setFontChooserItalic(int fontChooserID, BOOL italic);
+
+/**
+ * Display the FontChooser and wait for a user input
+ *
+ * @param fontChooserID the ID of the Java FontChooser
+ */
+void fontChooserDisplayAndWait(int fontChooserID);
+
+/**
+ * Get the selected font name of a Font Chooser
+ *
+ * @param fontChooserID the ID of the Java FontChooser
+ * @return the name of the font
+ */
+char *getFontChooserFontName(int fontChooserID);
+
+/**
+ * Get the selected font size of a Font Chooser
+ *
+ * @param fontChooserID the ID of the Java FontChooser
+ * @return the size of the font
+ */
+int getFontChooserFontSize(int fontChooserID);
+
+/**
+ * Get the selected font bold attribute of a Font Chooser
+ *
+ * @param fontChooserID the ID of the Java FontChooser
+ * @return the bold attribute of the font
+ */
+BOOL getFontChooserBold(int fontChooserID);
+
+/**
+ * Get the selected font italic attribute of a Font Chooser
+ *
+ * @param fontChooserID the ID of the Java FontChooser
+ * @return the italic attribute of the font
+ */
+BOOL getFontChooserItalic(int fontChooserID);
+
+#endif
index a09f09a..af266cc 100644 (file)
@@ -43,6 +43,7 @@ int sci_messagebox(char *fname,unsigned long l);
 int sci_waitbar(char *fname,unsigned long l);
 int sci_progressionbar(char *fname,unsigned long l);
 int sci_helpbrowser(char *fname,unsigned long l);
+int sci_uigetfont(char *fname,unsigned long l);
 /*--------------------------------------------------------------------------*/
 #endif /*  __GW_GUI__ */
 /*--------------------------------------------------------------------------*/
index 2326c7c..1937cc7 100644 (file)
@@ -45,7 +45,8 @@ static gw_generic_table Tab[]=
        {sci_messagebox,"messagebox"},
        {sci_waitbar,"waitbar"},
        {sci_progressionbar,"progressionbar"},
-       {sci_helpbrowser,"helpbrowser"}
+       {sci_helpbrowser,"helpbrowser"},
+       {sci_uigetfont,"uigetfont"}
 };
 /*--------------------------------------------------------------------------*/
 int gw_gui(void)
diff --git a/scilab/modules/gui/sci_gateway/c/sci_uigetfont.c b/scilab/modules/gui/sci_gateway/c/sci_uigetfont.c
new file mode 100644 (file)
index 0000000..29af076
--- /dev/null
@@ -0,0 +1,219 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008 - INRIA - Vincent COUVERT (java version)
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "gw_gui.h"
+#include "stack-c.h"
+#include "localization.h"
+#include "Scierror.h"
+#include "CallFontChooser.h"
+#include "getPropertyAssignedValue.h"
+
+/*--------------------------------------------------------------------------*/
+int sci_uigetfont(char *fname,unsigned long fname_len)
+{
+  int fontChooserID = 0;
+
+  int nbRow = 0, nbCol = 0;
+
+  int fontNameAdr = 0;
+  int fontSizeAdr = 0;
+  int boldAdr = 0;
+  int italicAdr = 0;
+
+  char *selectedFontName = NULL;
+  int selectedFontSize = 0;
+  BOOL selectedBold = FALSE;
+  BOOL selectedItalic = FALSE;
+
+
+  CheckRhs(0,4);
+  CheckLhs(1,4);
+
+  /* Default font name */
+  if (Rhs >= 1) {
+    if (VarType(1) == sci_strings) 
+      {
+        GetRhsVar(1, MATRIX_OF_STRING_DATATYPE, &nbRow, &nbCol, &fontNameAdr);
+        if (nbRow*nbCol != 1)
+          {
+            Scierror(999, _("%s: Wrong size for first input argument: Single string expected.\n"), "uigetfont");
+            return FALSE;
+          }
+      }
+    else
+      {
+        Scierror(999, _("%s: Wrong type for first input argument: Single string expected.\n"), "uigetfont");
+        return FALSE;
+      }
+  }
+
+  /* Default font size */
+  if (Rhs >= 2) 
+    {
+      if (VarType(2) == sci_matrix)
+        {
+          GetRhsVar(2, MATRIX_OF_DOUBLE_DATATYPE, &nbRow, &nbCol, &fontSizeAdr);
+          if (nbRow*nbCol!=1)
+            {
+              Scierror(999, _("%s: Wrong size for second input argument: Single value expected.\n"), "uigetfont");
+              return FALSE;
+            }
+        }
+      else
+        {
+          Scierror(999, _("%s: Wrong type for second input argument: Single value expected.\n"), "uigetfont");
+          return FALSE;
+        }
+    }
+
+  /* Is the default font bold ? */
+  if (Rhs >= 3)
+    {
+      if (VarType(3) == sci_boolean)
+        {
+          GetRhsVar(3,MATRIX_OF_BOOLEAN_DATATYPE,&nbRow,&nbCol,&boldAdr);
+          if (nbRow*nbCol != 1)
+            {
+              Scierror(999, _("%s: Wrong type for third input argument: Single Boolean expected.\n"), "uigetfont");
+              return FALSE;
+            }
+
+        }
+      else
+        {
+          Scierror(999, _("%s: Wrong type for third input argument: Single Boolean expected.\n"), "uigetfont");
+          return FALSE;
+        }
+    }
+
+  /* Is the default font italic ? */
+  if (Rhs >= 4)
+    {
+      if (VarType(4) == sci_boolean)
+        {
+          GetRhsVar(4,MATRIX_OF_BOOLEAN_DATATYPE,&nbRow,&nbCol,&italicAdr);
+          if (nbRow*nbCol != 1)
+            {
+              Scierror(999, _("%s: Wrong type for fourth input argument: Single Boolean expected.\n"), "uigetfont");
+              return FALSE;
+            }
+
+        }
+      else
+        {
+          Scierror(999, _("%s: Wrong type for fourth input argument: Single Boolean expected.\n"), "uigetfont");
+          return FALSE;
+        }
+    }
+
+  /* Create the Java Object */
+  fontChooserID = createFontChooser();
+
+  /* Default font */
+  if (fontNameAdr != 0)
+    {
+      setFontChooserFontName(fontChooserID, getStringMatrixFromStack(fontNameAdr)[0]);
+    }
+  
+  /* Default size */
+  if (fontSizeAdr != 0)
+    {
+      setFontChooserFontSize(fontChooserID, stk(fontSizeAdr)[0]);
+    }
+  
+  /* Default bold */
+  if (boldAdr != 0)
+    {
+      setFontChooserBold(fontChooserID, istk(boldAdr)[0]);
+    }
+  
+  /* Default italic */
+  if (italicAdr != 0)
+    {
+      setFontChooserItalic(fontChooserID, istk(italicAdr)[0]);
+    }
+  
+  /* Display it and wait for a user input */
+  fontChooserDisplayAndWait(fontChooserID);
+
+  /* Return the selected font */
+  
+  /* Read the user answer */
+  selectedFontName = getFontChooserFontName(fontChooserID);
+
+  if (strcmp(selectedFontName,"")) /* The user selected a font */
+    {
+      selectedFontSize = getFontChooserFontSize(fontChooserID);
+      selectedBold = getFontChooserBold(fontChooserID);
+      selectedItalic = getFontChooserItalic(fontChooserID);
+
+      nbRow = 1; nbCol = 1;
+      if (Lhs>=1)
+        {
+          CreateVarFromPtr(Rhs+1, MATRIX_OF_STRING_DATATYPE, &nbRow, &nbCol, &selectedFontName);
+        }
+  
+      if (Lhs>=2)
+        {
+          CreateVar(Rhs+2, MATRIX_OF_DOUBLE_DATATYPE, &nbRow, &nbCol, &fontSizeAdr);
+          *stk(fontSizeAdr) = selectedFontSize;
+        }
+
+      if (Lhs>=3)
+        {
+          CreateVar(Rhs+3, MATRIX_OF_BOOLEAN_DATATYPE, &nbRow, &nbCol, &boldAdr);
+          *istk(boldAdr) = selectedBold;
+        }
+
+      if (Lhs>=4)
+        {
+          CreateVar(Rhs+4, MATRIX_OF_BOOLEAN_DATATYPE, &nbRow, &nbCol, &italicAdr);
+          *istk(italicAdr) = selectedItalic;
+        }
+    }
+  else /* The user canceled */
+    {
+      nbRow = 0; nbCol = 0;
+      if (Lhs>=1)
+        {
+          /* Return "" as font name */
+          CreateVar(Rhs+1, STRING_DATATYPE, &nbRow, &nbCol, &fontNameAdr);
+        }
+  
+      if (Lhs>=2)
+        {
+          /* Return [] as font size */
+          CreateVar(Rhs+2, MATRIX_OF_DOUBLE_DATATYPE, &nbRow, &nbCol, &fontSizeAdr);
+        }
+
+      if (Lhs>=3)
+        {
+          /* Return [] as bold value */
+          CreateVar(Rhs+3, MATRIX_OF_BOOLEAN_DATATYPE, &nbRow, &nbCol, &boldAdr);
+        }
+
+      if (Lhs>=4)
+        {
+           /* Return [] as italic value */
+         CreateVar(Rhs+4, MATRIX_OF_BOOLEAN_DATATYPE, &nbRow, &nbCol, &italicAdr);
+        }
+    }
+  
+  LhsVar(1) = Rhs+1;
+  LhsVar(2) = Rhs+2;
+  LhsVar(3) = Rhs+3;
+  LhsVar(4) = Rhs+4;
+  
+  C2F(putlhsvar)();
+  return TRUE;
+}
+/*--------------------------------------------------------------------------*/
index 3f3ce3a..46dd4c1 100644 (file)
@@ -56,4 +56,5 @@
 <PRIMITIVE gatewayId="25" primitiveId="23" primitiveName="waitbar" />
 <PRIMITIVE gatewayId="25" primitiveId="24" primitiveName="progressionbar" />
 <PRIMITIVE gatewayId="25" primitiveId="25" primitiveName="helpbrowser" />
+<PRIMITIVE gatewayId="25" primitiveId="26" primitiveName="uigetfont" />
 </GATEWAY>
\ No newline at end of file
index 9c86d10..9e32a7f 100644 (file)
                                >
                        </File>
                        <File
+                               RelativePath="..\cpp\CallFontChooser.cpp"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\cpp\CallHelpBrowser.cpp"
                                >
                        </File>
                                >
                        </File>
                        <File
+                               RelativePath="..\..\includes\CallFontChooser.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\cpp\CallFontChooser.hxx"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\includes\CallHelpBrowser.h"
                                >
                        </File>
diff --git a/scilab/modules/gui/src/cpp/CallFontChooser.cpp b/scilab/modules/gui/src/cpp/CallFontChooser.cpp
new file mode 100644 (file)
index 0000000..c6f9f6c
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008 - INRIA - Vincent COUVERT
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "CallFontChooser.hxx"
+
+using namespace org_scilab_modules_gui_bridge;
+
+int createFontChooser()
+{
+  return CallScilabBridge::newFontChooser(getScilabJavaVM());
+}
+
+void setFontChooserFontName(int fontChooserID, char *fontName)
+{
+  CallScilabBridge::setFontChooserFontName(getScilabJavaVM(), fontChooserID, fontName);
+}
+
+void setFontChooserFontSize(int fontChooserID, int fontSize)
+{
+  CallScilabBridge::setFontChooserFontSize(getScilabJavaVM(), fontChooserID, fontSize);
+}
+
+void setFontChooserBold(int fontChooserID, BOOL bold)
+{
+  CallScilabBridge::setFontChooserBold(getScilabJavaVM(), fontChooserID, bold);
+}
+
+void setFontChooserItalic(int fontChooserID, BOOL italic)
+{
+  CallScilabBridge::setFontChooserItalic(getScilabJavaVM(), fontChooserID, italic);
+}
+
+void fontChooserDisplayAndWait(int fontChooserID)
+{
+CallScilabBridge::fontChooserDisplayAndWait(getScilabJavaVM(), fontChooserID);
+}
+
+char *getFontChooserFontName(int fontChooserID)
+{
+  return CallScilabBridge::getFontChooserFontName(getScilabJavaVM(), fontChooserID);
+}
+
+int getFontChooserFontSize(int fontChooserID)
+{
+  return CallScilabBridge::getFontChooserFontSize(getScilabJavaVM(), fontChooserID);
+}
+
+BOOL getFontChooserBold(int fontChooserID)
+{
+  return CallScilabBridge::getFontChooserBold(getScilabJavaVM(), fontChooserID);
+}
+
+BOOL getFontChooserItalic(int fontChooserID)
+{
+  return CallScilabBridge::getFontChooserItalic(getScilabJavaVM(), fontChooserID);
+}
diff --git a/scilab/modules/gui/src/cpp/CallFontChooser.hxx b/scilab/modules/gui/src/cpp/CallFontChooser.hxx
new file mode 100644 (file)
index 0000000..bb36948
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef __CALLFONTCHOOSER_HXX__
+#define __CALLFONTCHOOSER_HXX__
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008 - INRIA - Vincent COUVERT
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "CallScilabBridge.hxx"
+extern "C" {
+#include "getScilabJavaVM.h"
+#include "CallFontChooser.h"
+}
+
+#endif
index 19648ee..6684b6a 100644 (file)
@@ -247,6 +247,15 @@ public class CallScilabBridge {
        }
        
        /**
+        * Create a new Font Chooser in Scilab GUIs
+        * @return the ID of the Font Chooser in the UIElementMapper
+        */
+       public static int newFontChooser() {
+               FontChooser fontChooser = ScilabFontChooser.createFontChooser();
+               return UIElementMapper.add(fontChooser);
+       }
+       
+       /**
         * Create a new MessageBox in Scilab GUIs
         * @return the ID of the MessageBox in the UIElementMapper
         */
@@ -1959,7 +1968,8 @@ public class CallScilabBridge {
         */
        public static void changeConsoleFont() {
                FontChooser fontChooser = ScilabFontChooser.createFontChooser(ScilabConsole.getConsole().getFont());
-
+               fontChooser.displayAndWait();
+               
                Font selectedFont = fontChooser.getSelectedFont();
                
                if (selectedFont != null) {
@@ -2019,4 +2029,95 @@ public class CallScilabBridge {
                        ConfigManager.saveConsoleBackground(selectedColor);
                }
        }
+       
+       /***********************/
+       /*                     */
+       /* FONT CHOOSER BRIDGE */
+       /*                     */
+       /***********************/
+       
+       /**
+        * Set the default font name for a FileChooser
+        * @param id the id of the FileChooser
+        * @param fontName the name of the font
+        */
+       public static void setFontChooserFontName(int id, String fontName) {
+               ((FontChooser) UIElementMapper.getCorrespondingUIElement(id)).setDefaultFontName(fontName);
+       }
+       
+       /**
+        * Set the default font size for a FileChooser
+        * @param id the id of the FileChooser
+        * @param fontSize the size of the font
+        */
+       public static void setFontChooserFontSize(int id, int fontSize) {
+               ((FontChooser) UIElementMapper.getCorrespondingUIElement(id)).setDefaultFontSize(fontSize);
+       }
+
+       /**
+        * Set the default bold attribute for a FileChooser
+        * @param id the id of the FileChooser
+        * @param bold the bold attribute of the font
+        */
+       public static void setFontChooserBold(int id, boolean bold) {
+               ((FontChooser) UIElementMapper.getCorrespondingUIElement(id)).setDefaultBold(bold);
+       }
+
+       /**
+        * Set the default italic attribute for a FileChooser
+        * @param id the id of the FileChooser
+        * @param italic the italic attribute of the font
+        */
+       public static void setFontChooserItalic(int id, boolean italic) {
+               ((FontChooser) UIElementMapper.getCorrespondingUIElement(id)).setDefaultItalic(italic);
+       }
+
+       /**
+        * Get the selected font name for a FileChooser
+        * @param id the id of the FileChooser
+        * @return the name of the font
+        */
+       public static String getFontChooserFontName(int id) {
+               Font selectedFont = ((FontChooser) UIElementMapper.getCorrespondingUIElement(id)).getSelectedFont();
+               if (selectedFont != null) {
+                       return selectedFont.getFamily();
+               } else {
+                       return "";
+               }
+       }
+       
+       /**
+        * Get the selected font size for a FileChooser
+        * @param id the id of the FileChooser
+        * @return the size of the font
+        */
+       public static int getFontChooserFontSize(int id) {
+               return ((FontChooser) UIElementMapper.getCorrespondingUIElement(id)).getSelectedFont().getSize();
+       }
+
+       /**
+        * Get the selected bold attribute for a FileChooser
+        * @param id the id of the FileChooser
+        * @return the bold attribute of the font
+        */
+       public static boolean getFontChooserBold(int id) {
+               return ((FontChooser) UIElementMapper.getCorrespondingUIElement(id)).getSelectedFont().isBold();
+       }
+
+       /**
+        * Get the selected italic attribute for a FileChooser
+        * @param id the id of the FileChooser
+        * @return the italic attribute of the font
+        */
+       public static boolean getFontChooserItalic(int id) {
+               return ((FontChooser) UIElementMapper.getCorrespondingUIElement(id)).getSelectedFont().isItalic();
+       }
+       
+       /**
+        * Display this chooser and wait for user selection 
+        * @param id the id of the FontChooser
+        */
+       public static void fontChooserDisplayAndWait(int id) {
+               ((FontChooser) UIElementMapper.getCorrespondingUIElement(id)).displayAndWait();
+       }
 }
index 8009a13..42d1d47 100644 (file)
@@ -4292,6 +4292,50 @@ public class ScilabBridge {
                return ScilabFontChooserBridge.getSelectedFont(fontChooser);
        }
 
+       /** 
+        * Set the default font name 
+        * @param fontChooser the FontChooser
+        * @param fontName the default font name
+        */
+       public static void setDefaultFontName(FontChooser fontChooser, String fontName) {
+               ScilabFontChooserBridge.setDefaultFontName(fontChooser, fontName);
+       }
+
+       /** 
+        * Set the default font size 
+        * @param fontChooser the FontChooser
+        * @param fontSize the default font size
+        */
+       public static void setDefaultFontSize(FontChooser fontChooser, int fontSize) {
+               ScilabFontChooserBridge.setDefaultFontSize(fontChooser, fontSize);
+       }
+
+       /** 
+        * Set the default font bold attribute 
+        * @param fontChooser the FontChooser
+        * @param bold the default font bold attribute
+        */
+       public static void setDefaultBold(FontChooser fontChooser, boolean bold) {
+               ScilabFontChooserBridge.setDefaultBold(fontChooser, bold);
+       }
+
+       /** 
+        * Set the default font italic attribute 
+        * @param fontChooser the FontChooser
+        * @param italic the default font italic attribute
+        */
+       public static void setDefaultItalic(FontChooser fontChooser, boolean italic) {
+               ScilabFontChooserBridge.setDefaultItalic(fontChooser, italic);
+       }
+       
+       /**
+        * Display the font chooser and wait for a user input
+        * @param fontChooser the FontChooser
+        */
+       public static void displayAndWait(FontChooser fontChooser) {
+               ScilabFontChooserBridge.displayAndWait(fontChooser);
+       }
+
        /***********************/
        /* ColorChooser Bridge */
        /***********************/
index 8914b52..22eabda 100644 (file)
@@ -207,8 +207,6 @@ public class SwingScilabFontChooser extends JDialog implements SimpleFontChooser
            pack();
            
            setResizable(false);
-           
-           setVisible(true);
        }
 
        /**
@@ -256,4 +254,51 @@ public class SwingScilabFontChooser extends JDialog implements SimpleFontChooser
                pack();
        }
 
+       /** 
+        * Set the default font name 
+        * @param fontName the default font name
+        */
+       public void setDefaultFontName(String fontName) {
+               for (int fontIndex = 0; fontIndex < availableFontNames.length; fontIndex++) {
+                       if (availableFontNames[fontIndex].equalsIgnoreCase(fontName)) {
+                               fontNameList.setSelectedIndex(fontIndex);
+                       }
+               }
+       }
+
+       /** 
+        * Set the default font size 
+        * @param fontSize the default font size
+        */
+       public void setDefaultFontSize(int fontSize) {
+               for (int sizeIndex = 0; sizeIndex < availableFontSizes.length; sizeIndex++) {
+                       if (availableFontSizes[sizeIndex].equals(Integer.toString(fontSize))) {
+                               fontSizeList.setSelectedIndex(sizeIndex);
+                       }
+               }
+       }
+
+       /** 
+        * Set the default font bold attribute 
+        * @param bold the default font bold attribute
+        */
+       public void setDefaultBold(boolean bold) {
+               boldCheckbox.setSelected(bold);
+       }
+
+       /** 
+        * Set the default font italic attribute 
+        * @param italic the default font italic attribute
+        */
+       public void setDefaultItalic(boolean italic) {
+               italicCheckbox.setSelected(italic);
+       }
+       
+       /**
+        * Display the font chooser and wait for a user input
+        */
+       public void displayAndWait() {
+           setVisible(true);
+       }
+
 }
index 3d2fcd3..b343ae0 100644 (file)
@@ -33,5 +33,33 @@ public interface FontChooser extends UIElement {
         * @return the selected font
         */
        Font getSelectedFont();
+       
+       /** 
+        * Set the default font name 
+        * @param fontName the default font name
+        */
+       void setDefaultFontName(String fontName);
+
+       /** 
+        * Set the default font size 
+        * @param fontSize the default font size
+        */
+       void setDefaultFontSize(int fontSize);
+
+       /** 
+        * Set the default font bold attribute 
+        * @param bold the default font bold attribute
+        */
+       void setDefaultBold(boolean bold);
 
+       /** 
+        * Set the default font italic attribute 
+        * @param italic the default font italic attribute
+        */
+       void setDefaultItalic(boolean italic);
+       
+       /**
+        * Display the font chooser and wait for a user input
+        */
+       void displayAndWait();
 }
index b8b1d5f..bec1d44 100644 (file)
@@ -69,6 +69,45 @@ public class ScilabFontChooser extends ScilabUIElement implements FontChooser {
        public Font getSelectedFont() {
                return ScilabBridge.getSelectedFont(this);
        }
+       
+       /** 
+        * Set the default font name 
+        * @param fontName the default font name
+        */
+       public void setDefaultFontName(String fontName) {
+               ScilabBridge.setDefaultFontName(this, fontName);
+       }
+
+       /** 
+        * Set the default font size 
+        * @param fontSize the default font size
+        */
+       public void setDefaultFontSize(int fontSize) {
+               ScilabBridge.setDefaultFontSize(this, fontSize);
+       }
+
+       /** 
+        * Set the default font bold attribute 
+        * @param bold the default font bold attribute
+        */
+       public void setDefaultBold(boolean bold) {
+               ScilabBridge.setDefaultBold(this, bold);
+       }
+
+       /** 
+        * Set the default font italic attribute 
+        * @param italic the default font italic attribute
+        */
+       public void setDefaultItalic(boolean italic) {
+               ScilabBridge.setDefaultItalic(this, italic);
+       }
+       
+       /**
+        * Display the font chooser and wait for a user input
+        */
+       public void displayAndWait() {
+               ScilabBridge.displayAndWait(this);
+       }
 
        /**
         * Should not be used, just here to implement org.scilab.modules.gui.UIElement#draw()
index 3bd6d57..ec45d38 100644 (file)
@@ -46,5 +46,49 @@ public class ScilabFontChooserBridge {
        public static Font getSelectedFont(FontChooser fontChooser) {
                return fontChooser.getAsSimpleFontChooser().getSelectedFont();
        }
+       
+       /** 
+        * Set the default font name 
+        * @param fontChooser the FontChooser
+        * @param fontName the default font name
+        */
+       public static void setDefaultFontName(FontChooser fontChooser, String fontName) {
+               fontChooser.getAsSimpleFontChooser().setDefaultFontName(fontName);
+       }
+
+       /** 
+        * Set the default font size 
+        * @param fontChooser the FontChooser
+        * @param fontSize the default font size
+        */
+       public static void setDefaultFontSize(FontChooser fontChooser, int fontSize) {
+               fontChooser.getAsSimpleFontChooser().setDefaultFontSize(fontSize);
+       }
+
+       /** 
+        * Set the default font bold attribute 
+        * @param fontChooser the FontChooser
+        * @param bold the default font bold attribute
+        */
+       public static void setDefaultBold(FontChooser fontChooser, boolean bold) {
+               fontChooser.getAsSimpleFontChooser().setDefaultBold(bold);
+       }
+
+       /** 
+        * Set the default font italic attribute 
+        * @param fontChooser the FontChooser
+        * @param italic the default font italic attribute
+        */
+       public static void setDefaultItalic(FontChooser fontChooser, boolean italic) {
+               fontChooser.getAsSimpleFontChooser().setDefaultItalic(italic);
+       }
+       
+       /**
+        * Display the font chooser and wait for a user input
+        * @param fontChooser the FontChooser
+        */
+       public static void displayAndWait(FontChooser fontChooser) {
+               fontChooser.getAsSimpleFontChooser().displayAndWait();
+       }
 
 }
index 7b05ee3..5b58d4a 100644 (file)
@@ -39,4 +39,32 @@ public interface SimpleFontChooser {
         */
        Font getSelectedFont();
 
+       /** 
+        * Set the default font name 
+        * @param fontName the default font name
+        */
+       void setDefaultFontName(String fontName);
+
+       /** 
+        * Set the default font size 
+        * @param fontSize the default font size
+        */
+       void setDefaultFontSize(int fontSize);
+
+       /** 
+        * Set the default font bold attribute 
+        * @param bold the default font bold attribute
+        */
+       void setDefaultBold(boolean bold);
+
+       /** 
+        * Set the default font italic attribute 
+        * @param italic the default font italic attribute
+        */
+       void setDefaultItalic(boolean italic);
+       
+       /**
+        * Display the font chooser and wait for a user input
+        */
+       void displayAndWait();
 }
index 1bbb79e..248c103 100644 (file)
@@ -236,6 +236,16 @@ voidsetWaitBarIndeterminateModejintjbooleanID=NULL;
 voidlaunchHelpBrowserjobjectArrayjstringID=NULL; 
 jbooleansearchKeywordjobjectArrayjstringjstringID=NULL; 
 voidsaveMainWindowSettingsID=NULL; 
+jintnewFontChooserID=NULL; 
+voidfontChooserDisplayAndWaitjintID=NULL; 
+voidsetFontChooserFontNamejintjstringID=NULL; 
+voidsetFontChooserFontSizejintjintID=NULL; 
+voidsetFontChooserBoldjintjbooleanID=NULL; 
+voidsetFontChooserItalicjintjbooleanID=NULL; 
+jstringgetFontChooserFontNamejintID=NULL; 
+jintgetFontChooserFontSizejintID=NULL; 
+jbooleangetFontChooserBoldjintID=NULL; 
+jbooleangetFontChooserItalicjintID=NULL; 
 
 
 }
@@ -395,6 +405,16 @@ voidsetWaitBarIndeterminateModejintjbooleanID=NULL;
 voidlaunchHelpBrowserjobjectArrayjstringID=NULL; 
 jbooleansearchKeywordjobjectArrayjstringjstringID=NULL; 
 voidsaveMainWindowSettingsID=NULL; 
+jintnewFontChooserID=NULL; 
+voidfontChooserDisplayAndWaitjintID=NULL; 
+voidsetFontChooserFontNamejintjstringID=NULL; 
+voidsetFontChooserFontSizejintjintID=NULL; 
+voidsetFontChooserBoldjintjbooleanID=NULL; 
+voidsetFontChooserItalicjintjbooleanID=NULL; 
+jstringgetFontChooserFontNamejintID=NULL; 
+jintgetFontChooserFontSizejintID=NULL; 
+jbooleangetFontChooserBoldjintID=NULL; 
+jbooleangetFontChooserItalicjintID=NULL; 
 
 
 }
@@ -3945,4 +3965,235 @@ curEnv->ExceptionDescribe() ;
                         
 }
 
+long CallScilabBridge::newFontChooser (JavaVM * jvm_){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID jintnewFontChooserID = curEnv->GetStaticMethodID(cls, "newFontChooser", "()I" ) ;
+if (jintnewFontChooserID == NULL) {
+std::cerr << "Could not access to the method " << "newFontChooser" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+                        jint res =  (jint) curEnv->CallIntMethod(cls, jintnewFontChooserID );
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+return res;
+
+}
+
+void CallScilabBridge::fontChooserDisplayAndWait (JavaVM * jvm_, long objID){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID voidfontChooserDisplayAndWaitjintID = curEnv->GetStaticMethodID(cls, "fontChooserDisplayAndWait", "(I)V" ) ;
+if (voidfontChooserDisplayAndWaitjintID == NULL) {
+std::cerr << "Could not access to the method " << "fontChooserDisplayAndWait" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+                         curEnv->CallStaticVoidMethod(cls, voidfontChooserDisplayAndWaitjintID ,objID);
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+}
+
+void CallScilabBridge::setFontChooserFontName (JavaVM * jvm_, long objID, char * fontName){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID voidsetFontChooserFontNamejintjstringID = curEnv->GetStaticMethodID(cls, "setFontChooserFontName", "(ILjava/lang/String;)V" ) ;
+if (voidsetFontChooserFontNamejintjstringID == NULL) {
+std::cerr << "Could not access to the method " << "setFontChooserFontName" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+jstring fontName_ = curEnv->NewStringUTF( fontName );
+
+                         curEnv->CallStaticVoidMethod(cls, voidsetFontChooserFontNamejintjstringID ,objID, fontName_);
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+}
+
+void CallScilabBridge::setFontChooserFontSize (JavaVM * jvm_, long objID, long fontSize){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID voidsetFontChooserFontSizejintjintID = curEnv->GetStaticMethodID(cls, "setFontChooserFontSize", "(II)V" ) ;
+if (voidsetFontChooserFontSizejintjintID == NULL) {
+std::cerr << "Could not access to the method " << "setFontChooserFontSize" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+                         curEnv->CallStaticVoidMethod(cls, voidsetFontChooserFontSizejintjintID ,objID, fontSize);
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+}
+
+void CallScilabBridge::setFontChooserBold (JavaVM * jvm_, long objID, bool bold){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID voidsetFontChooserBoldjintjbooleanID = curEnv->GetStaticMethodID(cls, "setFontChooserBold", "(IZ)V" ) ;
+if (voidsetFontChooserBoldjintjbooleanID == NULL) {
+std::cerr << "Could not access to the method " << "setFontChooserBold" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+jboolean bold_ = ((bool) bold ? JNI_TRUE : JNI_FALSE);
+
+                         curEnv->CallStaticVoidMethod(cls, voidsetFontChooserBoldjintjbooleanID ,objID, bold_);
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+}
+
+void CallScilabBridge::setFontChooserItalic (JavaVM * jvm_, long objID, bool italic){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID voidsetFontChooserItalicjintjbooleanID = curEnv->GetStaticMethodID(cls, "setFontChooserItalic", "(IZ)V" ) ;
+if (voidsetFontChooserItalicjintjbooleanID == NULL) {
+std::cerr << "Could not access to the method " << "setFontChooserItalic" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+jboolean italic_ = ((bool) italic ? JNI_TRUE : JNI_FALSE);
+
+                         curEnv->CallStaticVoidMethod(cls, voidsetFontChooserItalicjintjbooleanID ,objID, italic_);
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+}
+
+char * CallScilabBridge::getFontChooserFontName (JavaVM * jvm_, long objID){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID jstringgetFontChooserFontNamejintID = curEnv->GetStaticMethodID(cls, "getFontChooserFontName", "(I)Ljava/lang/String;" ) ;
+if (jstringgetFontChooserFontNamejintID == NULL) {
+std::cerr << "Could not access to the method " << "getFontChooserFontName" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+                        jstring res =  (jstring) curEnv->CallStaticObjectMethod(cls, jstringgetFontChooserFontNamejintID ,objID);
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+const char *tempString = curEnv->GetStringUTFChars(res, 0);
+char * myStringBuffer= (char*)malloc (strlen(tempString)*sizeof(char)+1);
+strcpy(myStringBuffer, tempString);
+curEnv->ReleaseStringUTFChars(res, tempString);
+
+return myStringBuffer;
+
+}
+
+long CallScilabBridge::getFontChooserFontSize (JavaVM * jvm_, long objID){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID jintgetFontChooserFontSizejintID = curEnv->GetStaticMethodID(cls, "getFontChooserFontSize", "(I)I" ) ;
+if (jintgetFontChooserFontSizejintID == NULL) {
+std::cerr << "Could not access to the method " << "getFontChooserFontSize" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+                        jint res =  (jint) curEnv->CallIntMethod(cls, jintgetFontChooserFontSizejintID ,objID);
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+return res;
+
+}
+
+bool CallScilabBridge::getFontChooserBold (JavaVM * jvm_, long objID){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID jbooleangetFontChooserBoldjintID = curEnv->GetStaticMethodID(cls, "getFontChooserBold", "(I)Z" ) ;
+if (jbooleangetFontChooserBoldjintID == NULL) {
+std::cerr << "Could not access to the method " << "getFontChooserBold" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+                        jboolean res =  (jboolean) curEnv->CallStaticBooleanMethod(cls, jbooleangetFontChooserBoldjintID ,objID);
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+return (res == JNI_TRUE);
+
+}
+
+bool CallScilabBridge::getFontChooserItalic (JavaVM * jvm_, long objID){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID jbooleangetFontChooserItalicjintID = curEnv->GetStaticMethodID(cls, "getFontChooserItalic", "(I)Z" ) ;
+if (jbooleangetFontChooserItalicjintID == NULL) {
+std::cerr << "Could not access to the method " << "getFontChooserItalic" << std::endl;
+exit(EXIT_FAILURE);
+}
+
+                        jboolean res =  (jboolean) curEnv->CallStaticBooleanMethod(cls, jbooleangetFontChooserItalicjintID ,objID);
+                        
+if (curEnv->ExceptionOccurred()) {
+curEnv->ExceptionDescribe() ;
+}
+
+                        
+return (res == JNI_TRUE);
+
+}
+
 }
index 63d8a4e..f7a717d 100644 (file)
 <!-- Main settings -->
        <method name="saveMainWindowSettings" returnType="void" modifier="static">
         </method>      
+<!-- Font Chooser -->
+       <method name="newFontChooser" returnType="int" modifier="static">
+        </method>      
+       <method name="fontChooserDisplayAndWait" returnType="void" modifier="static">
+          <parameter type="int" name="objID"/>
+        </method>      
+       <method name="setFontChooserFontName" returnType="void" modifier="static">
+          <parameter type="int" name="objID"/>
+          <parameter type="String" name="fontName"/>
+        </method>      
+       <method name="setFontChooserFontSize" returnType="void" modifier="static">
+          <parameter type="int" name="objID"/>
+          <parameter type="int" name="fontSize"/>
+        </method>      
+       <method name="setFontChooserBold" returnType="void" modifier="static">
+          <parameter type="int" name="objID"/>
+          <parameter type="boolean" name="bold"/>
+        </method>      
+       <method name="setFontChooserItalic" returnType="void" modifier="static">
+           <parameter type="int" name="objID"/>
+         <parameter type="boolean" name="italic"/>
+        </method>      
+       <method name="getFontChooserFontName" returnType="String" modifier="static">
+          <parameter type="int" name="objID"/>
+        </method>      
+       <method name="getFontChooserFontSize" returnType="int" modifier="static">
+          <parameter type="int" name="objID"/>
+        </method>      
+       <method name="getFontChooserBold" returnType="boolean" modifier="static">
+           <parameter type="int" name="objID"/>
+       </method>      
+       <method name="getFontChooserItalic" returnType="boolean" modifier="static">
+           <parameter type="int" name="objID"/>
+       </method>      
   </object>
 </package>
\ No newline at end of file
index 15ea437..2e31f9c 100644 (file)
@@ -187,6 +187,16 @@ jmethodID voidsetWaitBarIndeterminateModejintjbooleanID; // cache method id
 jmethodID voidlaunchHelpBrowserjobjectArrayjstringID; // cache method id
 jmethodID jbooleansearchKeywordjobjectArrayjstringjstringID; // cache method id
 jmethodID voidsaveMainWindowSettingsID; // cache method id
+jmethodID jintnewFontChooserID; // cache method id
+jmethodID voidfontChooserDisplayAndWaitjintID; // cache method id
+jmethodID voidsetFontChooserFontNamejintjstringID; // cache method id
+jmethodID voidsetFontChooserFontSizejintjintID; // cache method id
+jmethodID voidsetFontChooserBoldjintjbooleanID; // cache method id
+jmethodID voidsetFontChooserItalicjintjbooleanID; // cache method id
+jmethodID jstringgetFontChooserFontNamejintID; // cache method id
+jmethodID jintgetFontChooserFontSizejintID; // cache method id
+jmethodID jbooleangetFontChooserBoldjintID; // cache method id
+jmethodID jbooleangetFontChooserItalicjintID; // cache method id
 
 
 /**
@@ -496,6 +506,26 @@ static bool searchKeyword(JavaVM * jvm_, char ** helps, int helpsSize, char * ke
 
 static void saveMainWindowSettings(JavaVM * jvm_);
 
+static long newFontChooser(JavaVM * jvm_);
+
+static void fontChooserDisplayAndWait(JavaVM * jvm_, long objID);
+
+static void setFontChooserFontName(JavaVM * jvm_, long objID, char * fontName);
+
+static void setFontChooserFontSize(JavaVM * jvm_, long objID, long fontSize);
+
+static void setFontChooserBold(JavaVM * jvm_, long objID, bool bold);
+
+static void setFontChooserItalic(JavaVM * jvm_, long objID, bool italic);
+
+static char * getFontChooserFontName(JavaVM * jvm_, long objID);
+
+static long getFontChooserFontSize(JavaVM * jvm_, long objID);
+
+static bool getFontChooserBold(JavaVM * jvm_, long objID);
+
+static bool getFontChooserItalic(JavaVM * jvm_, long objID);
+
 
                         /**
                         * Get class name to use for static methods