The purpose of the DIALOG.INI file is to define and deliver layout and presentation data for all the dialogs which are used within the OPERA browser, and as well setting-up the links to actions which have to be executed in consequence of input received from the user.
The DIALOG.INI file is normally located in the basic folder into which the OPERA browser has been initially installed during the installation process by the user.
If you want to make changes to the DIALOG.INI file please make a back-up copy of your original DIALOG.INI, which is to be found in OPERA's basic or main program directory - its (initial) main installation directory as already mentioned above, which is currently NOT shown in Help > About Opera BTW. (But you normally can find this directory by looking into the properties of OPERA's desktop icon, if any.)
It shall also be mentioned here that, whereas the examples described are from OPERA browser version 8 (V8) only, all of this also applies to all OPERA browser versions since V7.
There don't appear to have been any major changes to the underlying UI engine since the original previews of V7.0, barring changes to the actual data structure(s).
Any DIALOG.INI file itself is grouped in sections, much the same as any other INI-file. Sections are characterized by and beginning with their name, written as text string and enclosed in squared brackets. e.g. [Sample Dialog]
Every dialog - mostly presenting itself as pop-up dialog - of the OPERA browser program is created by and contained within such sections of the DIALOG.INI file and has to be introductorily declared by a title designation, e.g. Title = 26512 — where the number points to a text string defined in the pertinent language file of the OPERA browser, e.g. english.lng, normally located in the same directory which also contains the DIALOG.INI file.
This number, serving as data pointer to a string can also be directly substituted by a text string enclosed in apostrophes,
e.g.: Title = "Sample Dialog Wizard" — which is not recommended however, because any translations would have to consider the extra wordings herein as a special case.
Above mentioned sections contain separate groups for distinct dialog elements, each comprising a listing of all the different components, making up a certain dialog element. The listing may consist of further sub-elements and components, all named by keywords designating those elements and components.
The dialog elements — each contained in a separate section — are built in a precisely defined and structured manner, consisting of arrangements of further sub-elements and all the components in hierarchical levels.
Top-level elements may thereby represent single tabs of a tabbed card container e.g., as such well known from ordinary GUI designs.
Sub-level elements and components may represent basic parts such as buttons, edit fields, text labels, simple tree-views and so on. A listing of - hopefully - all these basic parts (and as currently known) is given below.
In order to declare the general structure of a dialog element an enumeration of its components is recommended, thereby following the ordinary scheme of western writing culture, from top down to the bottom, and from the left to the right side.
This enumeration can be used to name single basic parts uniquely within a certain group for example. An added cipher — at the end of the designation, for a numbering scheme — does not hinder the recognition of the basic parts, an element or a component as such.
All sample dialogs for the first example are defined for OPERA's "New Account Wizard" for mail, news, and chat accounts, which can be found at the time being (OPERA V8) via menu "Tools" under "Mail and chat accounts", where the dialog "Manage accounts" is popping-up.
Therein then clicking on the button "New" leads to another opening of a dialog window named "New Account Wizard".
The enumeration of all the elements and components used within said wizard is mainly implemented because thereby all elements and components can be distinguished unmistakable, and also because completely identical elements would be eliminated by OPERA browser's interpreter for the DIALOG.INI file.
From my findings does another necessity for enumeration apparently not exist, until someone otherwise introduces or explaines it.
A screenshot of the first level pane of this "New Account Wizard" is shown below, all the other defined dialogs as defined by the various 'group'-declarations in the sample code could be evaluated life within an OPERA V8 browser.

start of example 1:
[New Account Wizard] Title = 26504 Group0, 0, , 65, 70, 290, 180, Center Label1, 67207, Account_label, 0, 0, 280, 23, Fixed Listbox2, 0, Account_type_listbox, 0, 30, 250, 150, Fixed, End Group3, 0, , 110, 73, 200, 173, Center Label4, 26505, Name_label, 0, 0, 200, 23, Fixed Edit5, 0, Name_edit, 0, 30, 200, 23, Fixed Label6, 26507, Mail_label, 0, 60, 200, 23, Fixed Edit7, 0, Mail_edit, 0, 90, 200, 23, Fixed Label8, 26506, Organization_label, 0, 120, 200, 23, Fixed Edit9, 0, Organization_edit, 0, 150, 200, 23, Fixed, End Group10, 0, , 110, 103, 200, 113, Center Label11, 0, Username_label, 0, 0, 200, 23, Fixed Edit12, 0, Username_edit, 0, 30, 200, 23, Fixed Label13, 26509, Password_label, 0, 60, 200, 23, Fixed Edit14, 0, Password_edit, 0, 90, 200, 23, Fixed, End Group15, 0, , 110, 73, 200, 173, Center Label16, 0, Incoming_label, 0, 0, 280, 23, Fixed Edit17, 0, Incoming_edit, 0, 30, 200, 23, Fixed DropDown18, 0, Incoming_dropdown, 0, 30, 200, 23, Fixed Checkbox19, 67208, Incoming_secure_checkbox, 0, 60, 200, 23, Fixed Checkbox20, 67209, Leave_on_server_checkbox, 0, 90, 200, 23, Fixed Label21, 26511, Outgoing_label, 0, 120, 200, 23, Fixed Edit22, 0, Outgoing_edit, 0, 150, 200, 23, Fixed, End Group23, 0, , 110, 100, 200, 120, Center Label24, 67210, , 0, 0, 250, 23, Fixed Listbox25, 0, Import_type_listbox, 0, 30, 250, 150, Fixed, End Group26, 0, , 60, 38, 300, 266, Center Treeview27, 0, Import_setimportaccount, 0, 0, 300, 92, Size right Label28, 69637, , 0, 94, 100, 23, Fixed Dropdown29, 0, Import_intoaccount_dropdown, 100, 94, 200, 23, Size right Checkbox30, 11424, Import_settings_check, 0, 117, 200, 23, Fixed Checkbox31, 67211, Import_contacts_check, 0, 140, 200, 23, Fixed Checkbox32, 67212, Import_messages_check, 0, 163, 200, 23, Fixed Label33, 0, Account_path_label, 0, 189, 180, 23, Fixed Label34, 0, Account_path, 0, 209, 300, 23, Size right Button35, 67213, Account_path_browse, 230, 243, 70, 23, Fixed, End Group36, 0, , 10, 130, 400, 60, Center Label37, 0, Import_info_label, 0, 0, 400, 23, Fixed Label38, 0, Import_progress_label, 0, 30, 400, 23, Fixed Progress39, 0, Import_progress_bar, 0, 50, 300, 10, Fixed, End Group40, 0, , 110, 148, 200, 23, Center, End Label41, "Not implemented yet.. sorry!", Notimplemented_label, 0, 0, 200, 23, Fixed, End
end of example 1
This example shows a part of OPERA's new standard "Preferences" dialog, located on the "Advanced" tab in the "Network" section.
Comparing code and screen shot hereby helps in identifying the defining elements in the code and the displayed elements, such as text labels, buttons, checkboxes, and dropdown menues as shown in the screen shot below. An easy lesson.

start of example 2:
Group, 11509, Network_group, 110, 0, 390, 310, Size Label, 70679, , 0, 0, 390, 23, Fixed Button, 11608, Proxy_servers_button, 0, 30, 200, 23, Fixed =Show proxy servers Button, 11609, Name_completion_button, 0, 60, 200, 23, Fixed=Show name completion Checkbox, 12065, International_address_checkbox, 0, 110, 300, 23, Fixed Checkbox, 52215, Enable_referrer_logging_checkbox, 0, 140, 300, 23, Fixed Checkbox, 10647, Enable_redirection_checkbox, 0, 170, 300, 23, Fixed Label, 10213, Max_connections_to_server_label, 0, 210, 150, 23, Fixed Dropdown, 0, Max_connections_to_server_dropdown, 150, 210, 60, 23, Fixed Label, 10219, Max_connections_total_label, 0, 240, 150, 23, Fixed Dropdown, 0, Max_connections_total_dropdown, 150, 240, 60, 23, Fixed Label, 11606, Browser_id_label, 0, 280, 150, 23, Fixed Dropdown, 0, Browser_id_dropdown, 150, 280, 240, 23, Fixed, End
end of example 2
$$$$$ = Text-ID for pertinent text string in language-file
UI = User Interface
GUI = Graphic User Interface
Defining Clause = Entity of statements, together representing a dialog or a dialog section, generally summarizing several logically, functionally, and topologically related basic elements, parts and data structures and set up spanning multiple lines
Defining Clause Line = Single line of a defining clause
Making up a complex dialog or even a wizard with a hierarchical structure as used nowadays in modern Graphic User Interfaces (GUI) asks for the implementation of hierarchically ordered structures, which in the OPERA browser generally are implemented with the help of elements subsumed here under that notion "Group".
Delving a bit deeper into this principle and looking at the following example:
Group, 0, Start_radio_group, 0, 90, 300, 120, Fixed
Radiobutton, 67223, Start_continue_browsing_radio, 0, 0, 300, 23, Fixed
Radiobutton, 68060, Start_saved_session_radio, 0, 30, 300, 23, Fixed
Radiobutton, 67226, Start_no_windows_radio, 0, 60, 300, 23, Fixed
Radiobutton, 67225, Start_homepage_radio, 0, 90, 300, 23, Fixed, End
where some part of a dialog is built with four radiobuttons, logically contained and connected with mutual inhibition in said part, i.e. only one button out of four is settable.
When a group is defined - starting with key-word "Group" and ending with key-word "End", all elements and components belonging to this group are to be included between these two key-words.
This construction will determine a defining clause in the DIALOG.INI file, which is on its part in turn made up by single defining clause lines.
The consequences of this are manyfold,
The aforementioned minimum rectangle spans up a rectangular screen area, the size limit values of which cannot be under-run. It is also defining the area, wherein all positions given in the defining clause lines - measured in pixels - for all following and included items (elements and components) are assigned relative to the boundaries of the underlying area for this group.
The method to define such screen areas can also be nested to achieve several layered levels, deducible from what is described above under hierarchical structuring.
So in the above example, the "Start_continue_browsing_radio" button is located at 0, 0 within the "Start_radio_group" group, its size is set as 300 pixels wide by 23 high, and does not adjust to the size of the dialog, because it's stated as 'Fixed'. A similar interpretation could be applied for all the other items.
The OPERA browser knows a huge variety of internal action commands, which can be attached and executed by using their name within a proper context. A list of those actions can be found elsewhere in AllActions.
Taking a button item as example for evaluating the use of parameters for a component definition in the DIALOG.INI file it can be seen, that following the key-word "Button" for the element or component as such, which is always the first word in the whole definition structure and designating the 'object type' button here there are following several other parameters ordered in a much comparable way for each component.
Button, 69880, Saved_files_button, 250, 250, 140, 23, Size right Move right=Show file handlers
Every element or component defining clause line has to be written completely on a single line in the DIALOG.INI file.
It is actually not clear if the key-word 'object type' is case sensitive or if, at least, it has to start with a capital letter.
Generally the list of parameters is essentially the same for all components, however the significance of these parameters may vary slightly, depending on the very component.
As an overview the following general structure for element and component definitions may hold:
'object type', 'label', 'name/data pointer', 'x', 'y', 'width', 'height', 'alignment',['End'] = 'action command list'
Besides a first term, the word for the 'object type' itself, and following said list of parameters 'label', 'name/data pointer', 'x', 'y', 'width', 'height', 'alignment', ['End'] another term, namely a list of usual OPERA action commands may terminate the defining clause lines for components, designated generally as 'action command list'.
Generally the first two parameters define descriptive text strings and/or links into the intrinsic data structure of the OPERA browser.
They are called 'label' and 'name/data pointer', where 'label' is used for lettering the component and the 'name/datapointer' item is actually telling the OPERA browser where to tie data.
The four next parameters designated 'x', 'y', 'width', and 'height' assign placement coordinates and dimension measures for the pertinent component, normally given as x and y coordinates for the upper left corner of a defining rectangle for the component followed by the width and height measures of this rectangle and given in pixels. All these data details written in this special correct order as described here.
Finally in general one further parameter named 'alignment' is assigned for alignment options, which specify whether these components are varied in their position and/or size during resizing of their base window or not, i.e. following by moving and expanding according to the changes of size or staying fixed.
It shall again be mentioned here, that this normally last parameter is sometimes followed by an additional key-word, namely "End" for designating the end of a "Group" definition, which can be understood also as a parameter, having however only said one fixed value.
A list of OPERA action commands namely said 'action command list', separated by an equal sign (=) may follow in certain cases. This 'action command list' has to obey the general rules for OPERA brower's actions as explained elsewhere in this WiKi, such as in AllActionsList, in AllActions and also in CustomCommands.
Any item (button, edit, etc.) which isn't tied to a 'name/data pointer' needs such an 'action command list'.
Options for 'alignment' are:
Recapitulating again because of its importance:
The last item in a group starting by "Group" will be marked "End" following the alignment.
If some item is linked to an OPERA action command (if going to add extra buttons or dropdowns e.g.) the alignment (and "End", if present) is followed by "=" and said 'action command list', same as this would appear in any other setup INI-file.
Note also that the last group in a dialog - made up of more than one group - is also marked "End" on the "Group" line itself.
Application, Description, Purpose:
Used e.g. for tabs with text on tab, added by an extra label defining clause line, where all included items are defined by and within such a "Group" or used for sub-dividing logical and functional related entities
e.g.:
Group, $$$$$, , 0, 0, 420, 330, Size
Group, 0, 0, 65, 70, 300, 300, Center
Group, 0, , 0, 0, 340, 360, Size
Group, 11515, Prefs None, 65, 70, 300, 300, Center
Group, 11509, Prefs Network, 65, 70, 300, 300, Center
Group, 0, Images_radio_group, 0, 0, 400, 60, Fixed
Group, "Advanced", , 0, 0, 400, 330, Center, End
Group, 16601, Ads_group, 110, 0, 390, 310, Center
Application, Description, Purpose:
Text string used as descriptive informations displayed in a single line, may also contain variable text string elements, tied in from internal data
e.g.:
Label, "Sample Label Text here", , 0, 0, 420, 23, Move down
Label, $$$$$, , 0, 0, 420, 23, Fixed
Label, 68107, Java_path_label, 0, 30, 390, 23, Size right
Label, 69634, , 0, 240, 140, 23, Fixed
Application, Description, Purpose:
Text string used as descriptive informations displayed in multiple lines (rows), may also contain variable text string elements, tied in from internal data
e.g.:
MultilineLabel, 69427, Targeted_ads_label, 20, 25, 370, 65, Size right
MultilineLabel, 70676, Cookie_info_label, 0, 0, 390, 40, Fixed
Application, Description, Purpose:
e.g.:
Separator1, , , 0, 90, 420, 20, Fixed
Separator2, , , 0, 240, 500, 15, Size right
Application, Description, Purpose:
e.g.:
Checkbox, 70645, Enable_wand_checkbox, 0, 30, 300, 23, Fixed
Checkbox, 145550, , 10, 30, 160, 23, Fixed = Set alignment, "browser toolbar", 6 | Set alignment, "browser toolbar", 0
Application, Description, Purpose:
e.g.:
Listbox2, 0, Account_type_listbox, 0, 30, 250, 150, Fixed, End
Listbox, 0, Cert_listbox, 0, 70, 250, 70, Size right
Listbox24, 0, Icon_listbox, 100, 30, 230, 230, Size, End
Application, Description, Purpose:
e.g.:
Button, 70450, Startpage_use_current_button, 310, 60, 110, 23, Fixed = Choose current page
Button, 69880, Saved_files_button, 250, 250, 140, 23, Size right Move right=Show file handlers
Application, Description, Purpose:
e.g.:
Radiobutton, 69426, Targeted_ads_radio, 0, 0, 400, 23, Fixed
Radiobutton, 10546, Radio_default_application, 0, 85, 300, 23, Size right
Application, Description, Purpose:
e.g.:
Edit, 0, City_edit, 100, 220, 100, 23, Fixed
Edit2, 0, Search_text_edit, 130, 0, 200, 23, Size right
Application, Description, Purpose:
e.g.:
MultilineEdit, 0, Edit, 0, 0, 330, 25, Move right
MultilineEdit, 69217, Help_label, 0, 0, 290, 80, Size right
Application, Description, Purpose:
e.g.:
Dropdown, 0, Page_image_dropdown, 150, 30, 200, 23, Fixed
Dropdown, 0, 0, 100, 290, 150, 23, Move down = Disable skin coloring,,,67433 | Use system skin coloring,,,67434 | Set skin coloring, #803C00,,67435 | Set skin coloring, #BD9431,,67436 | Set skin coloring, #2FB35E,,67437 | Set skin coloring, #2F83B3,,67438 | Set skin coloring, #001E80,,67439 | Set skin coloring, #606090,,67440 | Set skin coloring, #4B0082,,67441 | Set skin coloring, #DC143C,,67442 | Set skin coloring, #900000,,67443
Application, Description, Purpose:
e.g.:
Quickfind, 0, Filetypes_quickfind, 0, 0, 100, 23, Fixed
Quickfind, 0, Quickfind_edit, 130, 0, 120, 23, Fixed
Application, Description, Purpose:
e.g.:
Folderchooser, 0, Download_directory_chooser, 0, 280, 390, 23, Size right, End
Folderchooser, 0, My_user_javascript_chooser, 0, 280, 280, 23, Fixed
Folderchooser, 0, Action_save_directly_location, 5, 125, 295, 23, Size right
Application, Description, Purpose:
e.g.:
Treeview, 0, Protocol_treeview, 0, 110, 300, 100, Size
Treeview,,Buttons_treeview,0,0,100,310, Size Down
Application, Description, Purpose:
e.g.:
Progress39, 0, Import_progress_bar, 0, 50, 300, 10, Fixed, End
Progress, 0, Download_progress_bar, 0, 30, 300, 15, Size right
Application, Description, Purpose:
e.g.:
Browser, 0, Cert_browserview, 0, 30, 400, 200, Size
Browser, 0, Imagedetails_browserview, 0, 160, 300, 115, Size
Application, Description, Purpose:
e.g.:
Title = 19053
Title = " "
Title = "Appearance"
Application, Description, Purpose:
e.g.:
Toolbar, 0, Customize Toolbar Mail, 120, 50, 350, 260, Size
Toolbar, 0, Customize Toolbar Custom, 120, 0, 380, 310, Size, End
Application, Description, Purpose:
e.g.:
WebImage1, 0, Picture_image, 90, 0, 150, 150, Size
WebImage, 0, Info_image, 70, 20, 120, 200, Fixed, End
This is currently still a work in progress.
Authored by Hans J. Tilch, started on 28.April 2005.
Credits for valuable informations go to Steven Gunhouse. Thanks!
Please feel free to add your informations to this file. Additions can be made any time. Changes which comprise removals should only be made however after clearance with the authors. Use the comment section for it, please.
CategoryOpera CategoryTechnical