ClassesClasses | | Operators

open_windowT_open_windowOpenWindowOpenWindow (Operator)

Name

open_windowT_open_windowOpenWindowOpenWindow — Open a graphics window.

Signature

open_window( : : Row, Column, Width, Height, FatherWindow, Mode, Machine : WindowHandle)

Herror T_open_window(const Htuple Row, const Htuple Column, const Htuple Width, const Htuple Height, const Htuple FatherWindow, const Htuple Mode, const Htuple Machine, Htuple* WindowHandle)

void OpenWindow(const HTuple& Row, const HTuple& Column, const HTuple& Width, const HTuple& Height, const HTuple& FatherWindow, const HTuple& Mode, const HTuple& Machine, HTuple* WindowHandle)

void HWindow::HWindow(Hlong Row, Hlong Column, Hlong Width, Hlong Height, const HTuple& FatherWindow, const HString& Mode, const HString& Machine)

void HWindow::HWindow(Hlong Row, Hlong Column, Hlong Width, Hlong Height, void* FatherWindow, const HString& Mode, const HString& Machine)

void HWindow::HWindow(Hlong Row, Hlong Column, Hlong Width, Hlong Height, void* FatherWindow, const char* Mode, const char* Machine)

void HWindow::OpenWindow(Hlong Row, Hlong Column, Hlong Width, Hlong Height, const HTuple& FatherWindow, const HString& Mode, const HString& Machine)

void HWindow::OpenWindow(Hlong Row, Hlong Column, Hlong Width, Hlong Height, void* FatherWindow, const HString& Mode, const HString& Machine)

void HWindow::OpenWindow(Hlong Row, Hlong Column, Hlong Width, Hlong Height, void* FatherWindow, const char* Mode, const char* Machine)

static void HOperatorSet.OpenWindow(HTuple row, HTuple column, HTuple width, HTuple height, HTuple fatherWindow, HTuple mode, HTuple machine, out HTuple windowHandle)

public HWindow(int row, int column, int width, int height, HTuple fatherWindow, string mode, string machine)

public HWindow(int row, int column, int width, int height, IntPtr fatherWindow, string mode, string machine)

void HWindow.OpenWindow(int row, int column, int width, int height, HTuple fatherWindow, string mode, string machine)

void HWindow.OpenWindow(int row, int column, int width, int height, IntPtr fatherWindow, string mode, string machine)

Description

open_windowopen_windowOpenWindowOpenWindowOpenWindow opens a new window, which can be used to perform output of gray value data, regions, graphics as well as to perform textual output. All output (disp_regiondisp_regionDispRegionDispRegionDispRegion, disp_imagedisp_imageDispImageDispImageDispImage, etc.) is redirected to this window, if the same logical window number WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle is used.

The background of the created window is set to black in advance and it has a white border, which is 2 pixels wide (see also set_window_attr(::'border_width',<Width>:)set_window_attr("border_width",<Width>)SetWindowAttr("border_width",<Width>)SetWindowAttr("border_width",<Width>)SetWindowAttr("border_width",<Width>)).

Certain parameters used for the editing of output data are assigned to a window. These parameters are considered during the output itself (e.g., with disp_imagedisp_imageDispImageDispImageDispImage or disp_regiondisp_regionDispRegionDispRegionDispRegion). They are not specified by an output operator, but by “configuration operators”. If you want to set, e.g., the color red for the output of regions, you have to call set_color(::WindowHandle,'red':)set_color(WindowHandle,"red")SetColor(WindowHandle,"red")SetColor(WindowHandle,"red")SetColor(WindowHandle,"red") before calling disp_regiondisp_regionDispRegionDispRegionDispRegion. These parameters are always set for the window with the logical window number WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle and remain assigned to a window as long as they will be overwritten. You may use the following configuration operators:

You may query current set values by calling operators like get_shapeget_shapeGetShapeGetShapeGetShape. As some parameters are specified through the hardware (Resolution/Colors), you may query current available resources by calling query_colorquery_colorQueryColorQueryColorQueryColor.

The origin of the coordinate system of the window resides in the upper left corner (coordinates: (0,0)). The row index grows downward (maximal: HeightHeightHeightHeightheight-1), the column index grows to the right (maximal: WidthWidthWidthWidthwidth-1). You have to keep in mind, that the range of the coordinate system is independent of the window size. It is specified only through the image format (see reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDb).

The parameter MachineMachineMachineMachinemachine indicates the name of the computer, which has to open the window. In case of a X-window, TCP-IP only sets the name, DEC-Net sets in addition a colon behind the name. The “server” resp. the “screen” are not specified. If the empty string is passed the environment variable DISPLAY is used. It indicates the target computer. At this the name is indicated in common syntax <Host>:0.0.

For windows of type 'WIN32-Window', 'X-Window', and 'Cocoa' the parameter FatherWindowFatherWindowFatherWindowFatherWindowfatherWindow can be used to determine the father window for the window to be opened. In case the control 'father' is set via set_checkset_checkSetCheckSetCheckSetCheck, FatherWindowFatherWindowFatherWindowFatherWindowfatherWindow must be the ID of a HALCON window, otherwise (set_check('~father')) it can also be the ID of an operating system window. If FatherWindowFatherWindowFatherWindowFatherWindowfatherWindow is passed the value 0 or 'root', then under Windows and Unix-like systems the desktop and the root window become the father window, respectively. In this case, the value of the control 'father' (set via set_checkset_checkSetCheckSetCheckSetCheck) is irrelevant. The caller must ensure that FatherWindowFatherWindowFatherWindowFatherWindowfatherWindow is a valid handle and not destroyed as long as the embedded HALCON window is used.

You may use the value “-1” for parameters WidthWidthWidthWidthwidth and HeightHeightHeightHeightheight. This means, that the according value has to be specified automatically. In particular this is of importance, if the proportion of pixels is not 1.0 (see set_systemset_systemSetSystemSetSystemSetSystem): Is one of the two parameters set to “-1”, it will be specified through the size which results out of the proportion of pixels. Are both parameters set to “-1”, they will be set to the maximum image format, which is currently used (further information about the currently used maximum image format can be found in the description of get_systemget_systemGetSystemGetSystemGetSystem using “width” or “height”).

Position and size of a window may change during runtime of a program. This may be achieved by calling set_window_extentsset_window_extentsSetWindowExtentsSetWindowExtentsSetWindowExtents, but also through external interferences (window manager). In the latter case the operator set_window_extentsset_window_extentsSetWindowExtentsSetWindowExtentsSetWindowExtents is provided.

Opening a window causes the assignment of a called default font. It is used in connection with operators like write_stringwrite_stringWriteStringWriteStringWriteString and you may overwrite it by performing set_fontset_fontSetFontSetFontSetFont after calling open_windowopen_windowOpenWindowOpenWindowOpenWindow. On the other hand you have the possibility to specify a default font by calling set_system(::'default_font',<Fontname>:)set_system("default_font",<Fontname>)SetSystem("default_font",<Fontname>)SetSystem("default_font",<Fontname>)SetSystem("default_font",<Fontname>) before opening a window (and all following windows; see also query_fontquery_fontQueryFontQueryFontQueryFont).

You may set the color of graphics and font, which is used for output operators like disp_regiondisp_regionDispRegionDispRegionDispRegion or disp_circledisp_circleDispCircleDispCircleDispCircle, by calling set_rgbset_rgbSetRgbSetRgbSetRgb, set_hsiset_hsiSetHsiSetHsiSetHsi or set_grayset_graySetGraySetGraySetGray. Calling set_insertset_insertSetInsertSetInsertSetInsert specifies how graphics is combined with the content of the image repeat memory. Thereto you may achieve by calling, e.g., set_insertset_insertSetInsertSetInsertSetInsert(::'not':) to eliminate the font after writing text twice at the same position.

Normally every output (e.g., disp_imagedisp_imageDispImageDispImageDispImage, disp_regiondisp_regionDispRegionDispRegionDispRegion, disp_circledisp_circleDispCircleDispCircleDispCircle, etc.) in a window is terminated by a called “flush”. This causes the data to be fully visible on the display after termination of the output operator. But this is not necessary in all cases, in particular if there are permanently output tasks or if there is a mouse procedure active. Therefore it is more favorable (i.e., more rapid) to store the data until sufficient data is available. You may stop this behavior by calling set_system(::'flush_graphic','false':)set_system("flush_graphic","false")SetSystem("flush_graphic","false")SetSystem("flush_graphic","false")SetSystem("flush_graphic","false").

The content of windows is saved (in case it is supported by special driver software); i.e., it is preserved, also if the window is hidden by other windows. But this is not necessary in all cases: If the content of a window is built up permanently new (copy_rectanglecopy_rectangleCopyRectangleCopyRectangleCopyRectangle), you may suppress the security mechanism for that and hence you can save the necessary memory. This is done by calling set_system(::'backing_store','false':)set_system("backing_store","false")SetSystem("backing_store","false")SetSystem("backing_store","false")SetSystem("backing_store","false") before opening a window. In doing so you save not only memory but also time to compute. This is significant for the output of video clips (see copy_rectanglecopy_rectangleCopyRectangleCopyRectangleCopyRectangle).

For graphical output (disp_imagedisp_imageDispImageDispImageDispImage,disp_regiondisp_regionDispRegionDispRegionDispRegion, etc.) you may adjust the window by calling the operator set_partset_partSetPartSetPartSetPart in order to represent a logical clipping of the image format. In particular this implicates that you obtain this clipping (with appropriate enlargement) of images and regions only.

Difference: graphical window - textual window

The parameter ModeModeModeModemode determines the mode of the window. It may have following values:

'visible':

Normal mode for graphical windows: The window is created according to the parameters and all input and output are possible.

'invisible':

Invisible windows are not displayed in the display. Parameters like RowRowRowRowrow, ColumnColumnColumnColumncolumn and FatherWindowFatherWindowFatherWindowFatherWindowfatherWindow do not have any meaning. Output to these windows has no effect. Input (read_stringread_stringReadStringReadStringReadString, mouse, etc.) is not possible. You may use these windows to query representation parameter for an output device without opening a (visible) window. Common queries are, e.g., query_colorquery_colorQueryColorQueryColorQueryColor and get_string_extentsget_string_extentsGetStringExtentsGetStringExtentsGetStringExtents.

'transparent':

These windows are transparent: the window itself is not visible (edge and background), but all the other operations are possible and all output is displayed. A common use for this mode is the creation of mouse sensitive regions.

'buffer':

These are also not visible windows. The output of images, regions and graphics is not visible on the display, but is stored in memory. Parameters like RowRowRowRowrow, ColumnColumnColumnColumncolumn and FatherWindowFatherWindowFatherWindowFatherWindowfatherWindow do not have any meaning. You may use buffer windows, if you prepare output (in the background) and copy it finally with copy_rectanglecopy_rectangleCopyRectangleCopyRectangleCopyRectangle in a visible window. Another usage might be the rapid processing of image regions during interactive manipulations. Textual input and mouse interaction are not possible in this mode.

Attention

You may keep in mind that parameters as RowRowRowRowrow, ColumnColumnColumnColumncolumn, WidthWidthWidthWidthwidth and HeightHeightHeightHeightheight are constrained by the output device. If you specify a father window (FatherWindowFatherWindowFatherWindowFatherWindowfatherWindow < > 'root') the coordinates are relative to this window.

Execution Information

This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.

Parameters

RowRowRowRowrow (input_control)  rectangle.origin.y HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Row index of upper left corner.

Default value: 0

Typical range of values: 0 ≤ Row Row Row Row row (lin)

Minimum increment: 1

Recommended increment: 1

Restriction: Row >= 0

ColumnColumnColumnColumncolumn (input_control)  rectangle.origin.x HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Column index of upper left corner.

Default value: 0

Typical range of values: 0 ≤ Column Column Column Column column (lin)

Minimum increment: 1

Recommended increment: 1

Restriction: Column >= 0

WidthWidthWidthWidthwidth (input_control)  rectangle.extent.x HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Width of the window.

Default value: 256

Typical range of values: 0 ≤ Width Width Width Width width (lin)

Minimum increment: 1

Recommended increment: 1

Restriction: 0 < Width <= 32768 || Width == -1

HeightHeightHeightHeightheight (input_control)  rectangle.extent.y HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Height of the window.

Default value: 256

Typical range of values: 0 ≤ Height Height Height Height height (lin)

Minimum increment: 1

Recommended increment: 1

Restriction: 0 < Height <= 32768 || Height == -1

FatherWindowFatherWindowFatherWindowFatherWindowfatherWindow (input_control)  pointer HTupleHTupleHtuple (integer / string) (IntPtr / IntPtr) (Hlong / HString) (Hlong / char*)

Logical number of the father window. To specify the display as father you may enter 'root' or 0.

Default value: 0

Restriction: FatherWindow >= 0

ModeModeModeModemode (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Window mode.

Default value: 'visible' "visible" "visible" "visible" "visible"

List of values: 'buffer'"buffer""buffer""buffer""buffer", 'invisible'"invisible""invisible""invisible""invisible", 'transparent'"transparent""transparent""transparent""transparent", 'visible'"visible""visible""visible""visible"

MachineMachineMachineMachinemachine (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Name of the computer on which you want to open the window. Otherwise the empty string.

Default value: '' "" "" "" ""

WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle (output_control)  window HWindow, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Window handle.

Example (HDevelop)

open_window(0,0,400,-1,'root','visible','',WindowHandle)
read_image(Image,'fabrik')
disp_image(Image,WindowHandle)
write_string(WindowHandle,'File, fabrik')
new_line(WindowHandle)
get_mbutton(WindowHandle,_,_,_)
set_lut(WindowHandle,'temperature')
set_color(WindowHandle,'blue')
write_string(WindowHandle,'temperature')
new_line(WindowHandle)
write_string(WindowHandle,'Draw Rectangle')
new_line(WindowHandle)
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
set_part(WindowHandle,Row1,Column1,Row2,Column2)
disp_image(Image,WindowHandle)
new_line(WindowHandle)

Example (C)

open_window(0,0,400,-1,"root","visible","",&WindowHandle) ;
read_image(&Image,"fabrik") ;
disp_image(Image,WindowHandle) ;
write_string(WindowHandle,"File: fabrik") ;
new_line(WindowHandle) ;
get_mbutton(WindowHandle,NULL,NULL,NULL) ;
set_lut(WindowHandle,"temperature") ;
set_color(WindowHandle,"blue") ;
write_string(WindowHandle,"temperature") ;
new_line(WindowHandle) ;
write_string(WindowHandle,"Draw Rectangle") ;
new_line(WindowHandle) ;
draw_rectangle1(WindowHandle,&Row1,&Column1,&Row2,&Column2) ;
set_part(Row1,Column1,Row2,Column2) ;
disp_image(Image,WindowHandle) ;
new_line(WindowHandle) ;

Example (HDevelop)

open_window(0,0,400,-1,'root','visible','',WindowHandle)
read_image(Image,'fabrik')
disp_image(Image,WindowHandle)
write_string(WindowHandle,'File, fabrik')
new_line(WindowHandle)
get_mbutton(WindowHandle,_,_,_)
set_lut(WindowHandle,'temperature')
set_color(WindowHandle,'blue')
write_string(WindowHandle,'temperature')
new_line(WindowHandle)
write_string(WindowHandle,'Draw Rectangle')
new_line(WindowHandle)
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
set_part(WindowHandle,Row1,Column1,Row2,Column2)
disp_image(Image,WindowHandle)
new_line(WindowHandle)

Example (HDevelop)

open_window(0,0,400,-1,'root','visible','',WindowHandle)
read_image(Image,'fabrik')
disp_image(Image,WindowHandle)
write_string(WindowHandle,'File, fabrik')
new_line(WindowHandle)
get_mbutton(WindowHandle,_,_,_)
set_lut(WindowHandle,'temperature')
set_color(WindowHandle,'blue')
write_string(WindowHandle,'temperature')
new_line(WindowHandle)
write_string(WindowHandle,'Draw Rectangle')
new_line(WindowHandle)
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
set_part(WindowHandle,Row1,Column1,Row2,Column2)
disp_image(Image,WindowHandle)
new_line(WindowHandle)

Example (HDevelop)

open_window(0,0,400,-1,'root','visible','',WindowHandle)
read_image(Image,'fabrik')
disp_image(Image,WindowHandle)
write_string(WindowHandle,'File, fabrik')
new_line(WindowHandle)
get_mbutton(WindowHandle,_,_,_)
set_lut(WindowHandle,'temperature')
set_color(WindowHandle,'blue')
write_string(WindowHandle,'temperature')
new_line(WindowHandle)
write_string(WindowHandle,'Draw Rectangle')
new_line(WindowHandle)
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
set_part(WindowHandle,Row1,Column1,Row2,Column2)
disp_image(Image,WindowHandle)
new_line(WindowHandle)

Result

If the values of the specified parameters are correct open_windowopen_windowOpenWindowOpenWindowOpenWindow returns 2 (H_MSG_TRUE). If necessary an exception is raised.

Possible Predecessors

reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDb

Possible Successors

set_colorset_colorSetColorSetColorSetColor, query_window_typequery_window_typeQueryWindowTypeQueryWindowTypeQueryWindowType, get_window_typeget_window_typeGetWindowTypeGetWindowTypeGetWindowType, set_window_typeset_window_typeSetWindowTypeSetWindowTypeSetWindowType, get_mpositionget_mpositionGetMpositionGetMpositionGetMposition, set_tpositionset_tpositionSetTpositionSetTpositionSetTposition, set_tshapeset_tshapeSetTshapeSetTshapeSetTshape, set_window_extentsset_window_extentsSetWindowExtentsSetWindowExtentsSetWindowExtents, get_window_extentsget_window_extentsGetWindowExtentsGetWindowExtentsGetWindowExtents, query_colorquery_colorQueryColorQueryColorQueryColor, set_checkset_checkSetCheckSetCheckSetCheck, set_systemset_systemSetSystemSetSystemSetSystem

See also

disp_regiondisp_regionDispRegionDispRegionDispRegion, disp_imagedisp_imageDispImageDispImageDispImage, disp_colordisp_colorDispColorDispColorDispColor, set_lutset_lutSetLutSetLutSetLut, query_colorquery_colorQueryColorQueryColorQueryColor, set_colorset_colorSetColorSetColorSetColor, set_rgbset_rgbSetRgbSetRgbSetRgb, set_hsiset_hsiSetHsiSetHsiSetHsi, set_pixelset_pixelSetPixelSetPixelSetPixel, set_grayset_graySetGraySetGraySetGray, set_partset_partSetPartSetPartSetPart, set_part_styleset_part_styleSetPartStyleSetPartStyleSetPartStyle, query_window_typequery_window_typeQueryWindowTypeQueryWindowTypeQueryWindowType, get_window_typeget_window_typeGetWindowTypeGetWindowTypeGetWindowType, set_window_typeset_window_typeSetWindowTypeSetWindowTypeSetWindowType, get_mpositionget_mpositionGetMpositionGetMpositionGetMposition, set_tpositionset_tpositionSetTpositionSetTpositionSetTposition, set_window_extentsset_window_extentsSetWindowExtentsSetWindowExtentsSetWindowExtents, get_window_extentsget_window_extentsGetWindowExtentsGetWindowExtentsGetWindowExtents, set_window_attrset_window_attrSetWindowAttrSetWindowAttrSetWindowAttr, set_checkset_checkSetCheckSetCheckSetCheck, set_systemset_systemSetSystemSetSystemSetSystem

Module

Foundation


ClassesClasses | | Operators