Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Style
/*** DO NOT EDIT ***/
/*** This block necessarily fixes some quirks of ConfWiki editor, leave it here unless you understand. ***/

.expand-container + p, style.conf-macro + p {
    display: none;
}
.expand-control {
    margin-bottom: 0;
}
.expand-control-text {
    color: #000;
}

...

Div
classtoggle-all-button

Toggle All


Origin 2018b Features

Origin Interface

Expand
titleActive Window is indicated by a frame around the window. Color and line style can be customized.

When there are many child windows, it's hard to tell which window is active.

A magenta frame is added around active window title bar 

System Variables:
@AWI = No Indicator
@AWI = 1, default, solid line, outside window frame

@AWI=2;title bar frame
@AWI=3;title bar top line

and add 4 to use thin line 
and add 8 to use dashed line
for example 
@AWI=9;//thick dashed line, window frame


@AWF=0 (default), no flashing @AWF=100, in milliseconds, the flashing time

@AWC for indicator color
@AWC=color(255,0,0);

...

Expand
titleEasier notation for adding labels when merging multiple graphs, including support for Roman numerals

Set Label Text as Custom and click the dropdown list to see Custom notations.

Notations can be combined, e.g. h$n$ to show #1, #2, ....

a$ (default) – enumerate lower case letters
A$ – enumerateupper case letters
r$ – enumerate lower case roman numerals 
R$ – enumerate upper case roman numerals 
n$ or # – enumerate numbers
h$ – represent #

Graph## – Graph01, Graph02, ...

hsn$ means #1, #2, ....

Labtalk Script example:

merge_graph labeltext:=custom labelcustom:=h$n$;

Tip: Click the > button next to Dialog theme and choose Generate Script, executable Labtalk script will be created.



...

Expand
titleImport data with Start New Columns mode will not overwrite empty columns with merged column labels

If user merges some column labels e.g. Comments and import mode is set as Start New Columns. Then Origin will treat the merged column as a unit and check if 1st column in the unit is blank or not. If blank, import into it. If not, start new column after the unit and import there. 

System vairable @DCM=1;//disable check merged labels. Then Origin will work the old way before 2018b. Import into empty columns in the unit.


Expand
titleImport data with Start New Columns mode will overwrite columns with missing values before creating additional columns

Columns with missing values are still treated as columns with data. In the past, when user tried to import multiple data into same sheet with Multi-File Import mode set to Start New Columns, data will be imported into new columns after missing values columns. In 2018b, data will be imported into those missing value columns.


...

Expand
titleBatch Plot dialog now combines options for Book, Sheet and Column into one dialog

Batch Plotting GUI Improvements

  • Combine Batch Plot with Book, Sheet and Column into one dialog. There is Batch Plot with dropdown list on the top of the dialog.
  • Matching conditions to filter book/sheet are moved on top of the book/sheet list.
  • Batch plotting menus and toolbar buttons also combine into single button and menu.
Image Modified


Expand
titleAllow importing data directly into embeded matrix in worksheet when performing batch processing

If the embeded matrix exits in the analysis template, batch processing support importing data or image to the embeded matrix. Besides,  drag and drop to import data or image to opened analysis template is also supported.


...

Expand
titleOption to default to old OPJ format for saving projects
A new system variable:
@OPJ=
0 Project to use new format and Copy Paste also new format
1 Project to use old format but Copy Page to use new format
2 Project to use new format, but Copy page to use Old format
3 Both will use old format

...

Expand
titleLabtalk:  New command to turn on audit log for all projects.

new LT command

doc -log1; //turns on for current project with empty password doc -log1 test;//turns on for current project with password = "test" doc -log0 test;//turns off for current project
doc.AuditLog=; //(ready-only )returns 1 or 0 AuditLog is on/off for the current project.

New system variable that is Registry based added
In Script Window, run
@ALOG=1;//turn on Audit log on New project (untitled)

You can also preset this in msi installer script to set registry
HKEY_CURRENT_USER\Software\OriginLab\Origin 9.5b\International\SysV\ALOG
with a DWORD value of 1


Expand
titleLabTalk:  Script access to better support install and uninstall of Origin files that D&D can install

Add the nlsf_install_fdf and nlsf_uninstall_fdf OC functions to install and uninstall fitting functions.

LabTalk Access is supported:

run.section(dofile.ogs, OnInstallFDF, "%Yfitfunc\MyGauss.fdf")
run.section(dofile.ogs, OnUnInstallFDF, "%Yfitfunc\MyGauss.fdf")

Add the template_install and template_uninstall OC functions to install and uninstall graph templates.

LabTalk Access is supported:

run.section(dofile.ogs, OnInstallTemplate, "%YMyGraph.otpu")
run.section(dofile.ogs, OnUnInstallTemplate, "%YMyGraph.otpu")



Expand
titleOC: Better default for index in  GetParameterResults
The default value of second parameter of OC function GetParameterResults() was changed to 0.

...

Expand
titleOC: Access to get and set LabTalk LT properties of Origin Objects

S2: Support accessing page properties by OC functions:Pagebase::SetProp() and Pagebase::GetProp(), for example:

void test_Graph_Set_and_Get_Properties()
{
	GraphPage gp;
	gp.Create("origin");
	gp.AddLayer("Test");
	double vv;
	gp.SetProp("active", 2);
	gp.GetProp("active", &vv);
	
	return;
}


Expand
titleLabtalk: Support for programming way to control Master Item display

S2: Programming way to view Master Items on Screen LT

page.master = 0, not export the Master item.
page.master = 1, export the Master item, but not view it on screen. page.master = 2, for screen, but ignore if bit 1 not set

However, if page.master = 1,  can use LT script "Menu -e 33096" to toggle viewing Master items on screen, but cannot control it.

...

Expand
titleAdded a parameter for specifying the title of dialog created by "okoc_folder_browser"

Added a new parameter "lpcszInitTitle" to the OC function okoc_folder_browser, and the new parameter is used to specify the title of dialog box, now the function is:

int okoc_folder_browser(LPCSTR lpcszInitDir, StringArray* saFolders, LPCSTR lpcszInitTitle)

The new parameter "lpcszInitTitleis used to specify the title of dialog box, and its default value is NULL.

Example:

#include <Origin.h>
#include <okocUtils.h> void folder_browser_ex1() { vector<string> vsFolders; int nRet = okoc_folder_browser("C:\\test", &vsFolders,"Folder browser"); printf("%d folders selected!\n", nRet); for ( int ii = 0; ii < nRet; ii++ ) printf("Folder%d: %s\n", ii + 1, vsFolders[ii]); return; }


Expand
titleOC: Functions for  Batch Plotting
Added three oc functions:

1. int GraphPage::CanDuplicate(int nWith = CAN_DUP_WITH_ANY);
Suppose a graph is active, use this OC function to tell if this graph is possible to duplicate with new columns, sheets, books.

2. int GetDuplicateWithCols(StringArray &saItems, DataPlot &dataPlot = NULL, int nModifier = PMMT_IGNORE);
Assume a graph is active, use this OC function to get the list of columns which can be used to batch plot the graph.

3. int GetDuplicateWithBooks(StringArray &saItems, int nModifier = PMMT_OFFSET, int nMatchCol = MATCHCOLUMN_INDEX, int nMatchSheet = MATCHSHEET_INDEX);
Assume a graph is active, use this OC function to get the list of sheets or books which can be used to batch plot the graph. If nMatchSheet == MATCHSHEET_IGNORE then Range is Sheet, else Range is Book.


...

Expand
titleFDF should include Category

Add new Category key to FDF General Information section.

  1. When D&D the FDF to Origin, FDF is automatically installed under the Categorys according to the Key.
  2. If this new key is empty or missing, it will pop up dialog to ask about which category to install.
  3. Operations in Fitting Function Builder and Fitting Function Organizer will update this Category key, such as Create/Move func.
  4. Fitting Function Builder allow to change category since 2018.

...

Expand
titlePut all weighting methods in dropdown items for all input datasets
  • In Nonlinear Fit tools, Data Selection page, all weighting methods are putted in the Weights drop-down list whichi allow to set multi datasets' weight mehod.
  • In Nonlinear Fit tools, Data Selection page, add Apply Weight to All menu to Range's context menu list. 


Expand
titleSmarter Handling of NLFit X Data Type
When Iteration Algorithm is set as "Levenberg Marquardt" in Nonlinear Fit tools, Fitted Curves page, default X Data Type is changed as new method: Follow Curve Shape. (Note: except the Nonlinear surface/matrix fit tool)


Peak Analysis

Expand
titleAutomatically set Area/Amplitude boundaries based on Peak Finding Direction.
  • If Peak Finding direction is Positive only, then Area boundary is >=0.
  • If Peak Finding direction is Negative only, then Area boundary is <=0.
  • If If Peak Finding direction is Both, then no boundary is set.

...

Expand
titleDiscrete Frequency for categorical data needs to add zeros for if not found

Discrete Frequency dialog  adds a checkbox Show Zero Count Categories.

Image Modified


Expand
titleImprove Weibull Fit with RRX method and Add Plot for survival function and hazard function for weibull fit - Origin Pro

Weibull Fit dialog adds below new items:

Image Modified


Expand
titleWeibull Fit Calculate 100% Probability Which Can't Plot
Origin 2018 changed Weibull Fit tool's Score Methods from Kaplan-Meier to Benard, which also affects Distribution Fit tool's probability plot .


Expand
titleRename Weibull Percentiles into percentages

Weibull Fit tool's PlotData worksheet column label changed.

Image Modified


Expand
titleAdd ellipse coefficient to correlation matrix

From Origin 2018, the major and minor radius of the correlation ellipse in Scatter Matrix are exported to the result sheet. No matter you create the Scatter Matrix from Plot: 2D: Scatter Matrix or Statistics: Descriptive Statistics: Correlation Coefficient, you can find the major and minor radius of each correlation ellipse by A and B values in the Parameters column label row of the PlotData worksheet, where A is the major radius and B is the minor radius.

Image Modified


Expand
titleAdd Median Absolute Deviation, Robust Coefficient of Variation and Harmonic Mean for Statistics on Columns/Rows tool

Statistics on Columns/Rows dialog adds below checkboxes:

Image ModifiedImage Modified


Expand
titleAdd option of Exclude cumulative counts plot to Pareto chart dialog

Add options to the Pareto Chart (Binned and Raw) dialog

  1. Add Show Cumulative Percent Plot checkbox to plot the cumulative counts plot.
  2. Add branch Combine Smaller Counts in One Category to group combine smaller values settings.

Image Modified


Batch Processing 

...

Expand
titleImprove Labtalk script to support exporting specified embedded graph(s) or graph sheet(s) during batch processing via Script After Each Process in Batch Processing dialog.
Example scripts:
//To export a graph sheet with sheet name: Graph1

expGraph type:=pdf overwrite:=rename export:=specified page:=Graph1!;
//To export a graph sheet with is the 5th sheet
expGraph type:=pdf overwrite:=rename export:=specified page:=5!;
//To export embedded graph in result sheet by graph short and long name
expGraph type:=pdf overwrite:=rename export:=specified pages:="FitLine - Linear Fit";
//To export embedded graph in FitLinear result sheet by graph short name
expGraph type:=pdf overwrite:=rename export:=specified pages:=FitLine;

//To export embedded graph in worksheet cell
expGraph type:=png filename:="<long name>" export:=specified page:=col(A)[3];

//To export multiple graph cells or floating graph
 expGraph type:=pdf  overwrite:=rename page:=2!; //sheet index

...

Expand
titleNew Project File Extension for New File Format and File Dialog
In Origin 2018, New File Extensions like OPJU, OGWU, OGGU, OTWU, etc are added to various opening/saving file dialogs drop-down lists.


Expand
titleConvert Origin to use Unicode for text and a new file structure for various Origin files including projects.

File extensions are changed to: OPJU, OGWU, OGGU, OTWU,, etc.

New structure allows file sizes to be reduced (sometimes greatly).

It also allows files to be loaded more quickly.

...

Expand
titleImages in worksheet cells now be viewed as enlarged popups when running mouse over the cell.

For example, when mousing over the following cells, an enlarged popup image will be displayed.

  • Sparklines cell.
  • A cell with Embedded graph.
  • A cell with Inserted Image from File.

Image Modified

A System Variable @CET is used to control the behavior:

@CET=0, use default size of 250x250
@CET=1 to 29, disable this feature
@CET > 30 is user defined size in pixel, scaled by DPI scale factor

...

Expand
titleAccess to the Character Map in Worksheet cell edit mode.

Double click a cell to enter the edit mode.

Ctr+M or right-click and choose Character Map to insert symbol into cell using the font specified for the cell.

The benefit of this is that it allows actual Unicode characters to be inserted into Label rows, rather than codes used in previous versions of Origin. Hence, then the values in Label Rows are displayed elsewhere, those Unicode characters will be used.

Image Modified


User Interface

Expand
titleInsert non-keyboard Unicode characters similar to MS Word and other apps using 4-digit code and Alt+X keyboard combination.

To insert a character that is not supported by your keyboard, find the relevant 4-digit Unicode code via Google. Then, when in edit mode, type in the 4 digits and hit Alt+X to convert it to the actual character. Note: If the font for the location does not support the relevant character, it may not display properly even though the character is valid.

This feature works in:

  • Worksheet cells even if rich text isn't enabled.
  • Axis titles, legend, and any regular text label on a graph.
  • Many Origin dialogs that support text entry such as those related to axis title, legend, and text objects. Also dialog like the Find in Projects and others.
  • Notes window.

...

Expand
titleUse One Legend Type Only and Auto Update
Add a new menu option named Use One Legend Type Only and Auto Update under Legend context menu. When it's checked and select one type of legend in Legend context menu, all other types of entry will be deleted. When data point/data plot is added or deleted, the legend will be updated automatically.


Axis Improvements

Expand
titleSupport Arrow at axis begin and end in 2D graphs.

Arrow node on Line and Ticks tab of Axis dialog

...

Expand
titleAllow drag-and-drop to add dataset into the group of Stacked Column
In 9.4, it is not possible to adding a dataset into a Stacked Column by drag-and-drop. Now you can add new dataset into the group of Stacked Column/Bar plot by drag-and-drop.


Graph Customization

Expand
titleSupport leader line for Pie chart label.

Show a leader line between pie slices and labels.

...

Expand
titleImprove Preview for patterns and filled colors

Hover mouse over a pattern block, the preview of this pattern will show.

Image Modified


3D Graphing Improvements

...

Expand
titleSupport no smoothing when set custom boundary for XYZ contour.

In Origin 2018, user can uncheck Smoothing checkbox when using Custom Boundary.

Before Origin 2018, the checkbox couldn't be unchecked so there was always some smoothing effect. Workaround: Set system variable @tcs=0 to minimize the number of smoothing data points


Expand
titleSupport Lighting effect for 3D walls plot.

Before Origin 2018, Lighting was only supported for 3D OpenGL based surface and 3d Bars.

In Origin 2018, we added the support for 3D Walls.

...

Expand
titleImprove Find and Find in Files in Code Builder.

Support User Regular Expressions and Append results in Find in Files dialog of Code Builder.

Image Modified


Expand
titleAllow graph object to be resized programmatically when horizontal and vertical movement is prohibited in Object Properties dialog.

Set system var @RRNM=1 to allow resizing when Disable Horizontal or Vertical Movement bits are set. (default is 0).

Image Modified


Expand
titleWarning when opening an opj which version is higher than your Origin

Implemented in Origin 2018. When opening an opj/opju which version is higher than your Origin, a smart hint show 

The file was created in a higher Origin version.
Some features may not be accessible.
It is recommended to upgrade your Origin to work on the file.

...

Expand
titleReminder Message about saving OPJ as OPJU
When user opens an OPJ file and later Save As, by default the format is OPJU, and we should open a reminder message box to inform them earlier version of Origin will not be able to open such files and allow Cancel, so file not saved.


Expand
titleStop shipping MOCA files
MOCA files are not shipped together with Origin 2018. If you need to build your MOCA DLL, please contact us: tech@originlab.com

...

Expand
titleDiff() function supports padding in the begin or end of range.

Add optional argument to current function:

vec Diff(vec[,n]) //support length of vector is N

where n can be
0 default, output vector length is N-1
1, pad 0 at the end, output vector length is N
2, pad 0 at the beginning, output vector length is N
3, 1st value in v, diff(v,0), last value in v, output vector length is N+1

For example: Suppose there are 10 rows in column A and Set Column Values of B as

diff(A) – returns 9 numbers. No value in last row.

diff(A,1) – returns 10 numbers. 0 at the end.

diff(A,2) – returns 10 numbers. 0 at the beginning.

diff(A,3) – returns 11 numbers. The begin and ending values are original begin and ending values in A. In between are diff(A) values .


...

Expand
titleLabTalk Command to convert OriginC C and CPP files to become OCZ for distribution.

Syntax for the conversion command is is

file -ocz password srcpath destination;

srcpath can have wildcard in file name, and in this case destination must be a folder location and destination files will use source file name and extension changed to OCZ.
password must be between 2 to 20 characters and space is now allowed.

The Message Log will list each successful conversion and indicate at the end as "Done!" or "Failed!". If any errors occur, they will be displayed in a Messagebox.

For example:

file -ocz junk "%YOriginC\*.c??" "%Yabc"

file -ocz "aB12#$" "%YOriginc\test.c" "%Yjunk.ocz"


Expand
titleBetter LabTalk access to plotting X-functions.

The X-functions below can be run  via LabTalk to create graphs.

  • plot_paretobin
  • plot_paretoraw
  • plot_gboxindexed
  • plot_windrose
  • plot_gindexed
  • plot_lineser
  • plot_kde2
  • plot_prob
  • plot_matrix

For  example:

plot_gboxindexed irng:=col(A) group:=col(B) theme:="test";

...

Expand
titleSupport  -mfph switch for LabTalk Create command to create a hidden matrix from 2D loose datasets for 3D parametric function plot.

For example:

create myx -fp2 50 u 0 1 50 0 1;

create myy -fp2 50 1 0 1 50 0 1;

create myz -fp2 50 v 0 1 50 0 1;

create FuncRight -mfph myz myx myy "u,v";

...

Expand
titleOC to provide access to LabTalk LT properties on OriginObject

2018 will have general OC access to all the LT properties, this will include GraphObject, Column, Worksheet, etc

Code Block
cc()
{
	vector<double> vPos;
	vector<int> vColor;
	int n=0;
	GraphLayer gly = Project.ActiveLayer();
	if( gly.IsValid() )
	{
		vector<double> xx;
		foreach (GraphObject go in gly.GraphObjects)
		{
			if(go.GetName().Left(4)=="Line")
			{
				vColor.Add(go.GetProp("color"));//color is integeter, can directly return
				double xPos=0;
				go.GetProp("x1",&xPos);
				vPos.Add(xPos);
				n++;
			}
		}
	}
	return n;
}



...

Expand
titleOC CreateGraphObject() provides an option to replace existing

Add a bit, GROBJ_REPLACE_EXISTING,for  CreateGraphObject() to replace existing

Code Block
void aa(double xx, int nColor, string strName = "line")
{
	GraphLayer gly = Project.ActiveLayer();
	GraphObject goLine = gly.CreateGraphObject(GROT_LINE, strName, GROBJ_REPLACE_EXISTING);
	goLine.SetProp("attach", 2);
	goLine.SetProp("direction", 2);//vertical
	goLine.SetProp("x1", xx);
	goLine.SetProp("y1", 2);
	goLine.SetProp("y2", 8);
	goLine.SetProp("color", nColor);
	goLine.SetProp("arrowEndShape",1);
}


...

Expand
titleDynaControl to Allow Multiple Controls in One Row

Dialog can have multiple controls in one row now.

Image Modified

Code Block
#include <GetNbox.h>
void GetNBoxMultiColumn()
{
	GETN_TREE(tr)
	//1 col
	GETN_BEGIN_BRANCH(PartImp0, "Branch0")   
	GETN_CHECK(Save, "Save Temp Files Save Temp Files Save Temp Files", false)
	GETN_CHECK(Save, "Save X Files Save X Files Save X Files Save X Files", false)
	GETN_CHECK(Save, "Save Y Files", false)
	GETN_CHECK(Save, "Save ABC Files", false)
	GETN_CHECK(Save, "Save CDE Files", false)
	GETN_CHECK(Save, "Save Junk Files", false)
	GETN_END_BRANCH(PartImp0)


	//2 columns
	GETN_BEGIN_BRANCH(PartImp, "Branch1 ++++++++++++++++++++++++++++++++")   GETN_MULTI_COLS_BRANCH(2, 0)
	GETN_CHECK(Save, "Save Temp Files", false)
	GETN_CHECK(Save, "Save X Files", false)
	GETN_CHECK(Save, "Save Y Files", false)
	GETN_CHECK(Save, "Save ABC Files", false)
	GETN_CHECK(Save, "Save CDE Files", false)
	GETN_CHECK(Save, "Save Junk Files", false)
	GETN_END_BRANCH(PartImp)
	
	//1 column
	GETN_BEGIN_BRANCH(PartImp2, "Branch2")
	GETN_CHECK(Save, "Save Temp Files Save Temp Files Save Temp Files", false)
	GETN_CHECK(Save, "Save X Files Save X Files Save X Files Save X Files", false)
	GETN_CHECK(Save, "Save Y Files", false)
	GETN_CHECK(Save, "Save ABC Files", false)
	GETN_CHECK(Save, "Save CDE Files", false)
	GETN_CHECK(Save, "Save Junk Files", false)
	GETN_END_BRANCH(PartImp2)

	//3 columns 
	GETN_BEGIN_BRANCH(PartImp6, "Branch6")
	GETN_BEGIN_BRANCH(PartImp5, "Branch5 **********************************************************************************************") GETN_MULTI_COLS_BRANCH(3, 0)
	GETN_COLOR(FitCurveColor, "Fit Curve\n color", 1)
	GETN_COLOR(FitCurveColor, "Fit  color", 1)
	GETN_COLOR(FitCurveColor, "Fit Curve\n color", 1)
	GETN_COLOR(FitCurveColor, "Fit color", 1)
	GETN_COLOR(FitCurveColor, "Fit Curve\n color", 1)
	GETN_COLOR(FitCurveColor, "Fit  color", 1)
	GETN_END_BRANCH(PartImp5)
	GETN_END_BRANCH(PartImp6)

	//3 columns 
	GETN_BEGIN_BRANCH(PartImp7, "Branch7 *************************************************************************************************") GETN_MULTI_COLS_BRANCH(3, 0)
	GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
	GETN_STR(FitCurveColor, "Fit  color", "STR1")
	GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
	GETN_STR(FitCurveColor, "Fit color", "STR1")
	GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
	GETN_STR(FitCurveColor, "Fit  color", "STR1")
	GETN_END_BRANCH(PartImp7)


	GETN_BEGIN_BRANCH(PartImp8, "Branch8 ") GETN_MULTI_COLS_BRANCH(2, 0)
	GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
	GETN_STR(FitCurveColor, "Fit  color", "STR1")
	GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
	GETN_STR(FitCurveColor, "Fit color", "STR1")
	GETN_STR(FitCurveColor, "Fit Curve\n color", "STR1")
	GETN_STR(FitCurveColor, "Fit  color", "STR1")
	GETN_END_BRANCH(PartImp8)
	if( GetNBox(tr, "Get Path", NULL, NULL, NULL) )
		out_tree(tr);
}


...

Expand
titleProvide format option to convert variables in OC to string in html

Add a parameter in JSON.ToString( ), which converts variables in OC to string in html with full precision, to specify format

Code Block
struct TestObj{
float ff;
double dd;
string str;
};

void test_json()
{
	TestObj obj;
	obj.ff = 1.234567890123456789;
	obj.dd = 1.234567890123456789;
	obj.str = "3.1415926";
	string strJSON1, strJSON2;
	OCJSONToString params;
	params.szFloatFmt = ".2";
	JSON.ToString(obj, strJSON1);
	JSON.ToString(obj, strJSON2, &params);
}


...

Expand
titleChange the z-index of controls

Enable popping up a message in an HTML dialog, it should be on top of graph control . Download the zip file below to see the sample codes

View file
nameAlert on graph.zip
height250


Expand
titleShow icon in the title bar of app dialog

Two new member functions are added to OC Window class:

Code Block
HICON Window::SetIcon(HICON hIcon, BOOL bBigIcon = FALSE);
HICON Window::GetIcon(BOOL bBigIcon = FALSE);

A new util function is also added to make it easier to set the icon from given icon file:

Code Block
HICON set_window_icon_from_file(HWND hWnd, LPCSTR szIconPath)

See below for the example of setting the icon of the HTML app dialog:

Code Block
BOOL CMyHTMLDlg::OnInitDialog()
{
	HTMLDlg::OnInitDialog(); // Call base class.
	
	string strIconPath = __FILE__;
	strIconPath = GetFilePath(strIconPath) + "test.ico";
	set_window_icon_from_file(GetSafeHwnd(), strIconPath);
	return TRUE
}

...