User Theme ve UI StandartlarıUser Theme and UI Standards

This page is part of an incremental translation project. Body text not yet translated to Turkish falls back to English even in TR mode.

Bu bölüm, user theme ve ui development standard'larının detaylarını tanıtmayı amaçlar.This sections aims to introduce details of user theme and ui development standards.

User Theme Nedir?What is User Theme?

Theme, user interface'e belirli standartlar sağlamak, uyumlu olmakla birlikte interface açısından end user'a çeşitli seçenekler sunmak için tasarlanmıştır. TROIA Client'ının genel görünümünü ve stilini belirleyen design element'lerinin setidir. Theme; text renklerini, background renklerini, font'ları, border'ları ve genel style kurallarını içerir. Kullanıcılar kendi theme'lerini Settings-> User Configurations -> Change Theme'den seçebilir, ayrıca SYST03 System Users Transaction'ında belirli bir kullanıcıya bir theme atamak da mümkündür.The theme is designed to provide the user interface with certain standards, in harmony but to offer various options to the end user in terms of the interface. It is the set of design elements that determine the overall appearance and style of the TROIA Client. The theme includes text colors, background colors, fonts, borders and general style rules. Users can choose their own themes from Settings-> User Configurations -> Change Theme and it is also possible to a theme to a specific user on SYST03 System Users Transaction.

TROIA platformu bir dizi built-in theme ile birlikte gelir. Ayrıca, bu standart theme'lerde çeşitli değişiklikler yapmak veya yeni theme'ler tanımlamak mümkündür. Yeni theme'ler tanımlamak veya mevcut theme'leri değiştirmek için SYST13 transaction'ını kullanabilirsiniz. İşte gömülü user theme'lerin listesi:The TROIA platform comes with a set of built-in themes. In addition, it is possible to make various changes to these standard themes or define new themes. You can use the SYST13 transaction to define new themes or modify existing themes. Here is the list of embedded user themes:

Blue Flat
CherryFlat
coffeeFlat
FDB-FLAT-WP
FLAT1
Flat Yellow
Green Flat
plumFlat
Surf Flat

Custom Bir Theme Nasıl Tanımlanır?How to Define a Custom Theme?

Geçerli yeni bir theme tanımlamak için, SYST13 transaction'ında yeni bir theme oluşturmalı ve önceden tanımlı tüm theme variable'larını kendi değerlerinizle eklemelisiniz. Theme variable konsepti ve standart theme variable isimleri bu bölümde ele alınacaktır. Theme'inizde eksik bir default theme variable'ı varsa, bu theme'inizin geçersiz olduğu anlamına gelir. Bir theme tanımlamak mümkün ve kolay olsa da, dağıtmak ve uyumlu tutmak biraz çaba gerektirir. Bu yüzden, uzun vadede böyle bir çabayı üstlenecek yeterli kaynağınız veya zamanınız yoksa bu sorumluluğu üstlenmeniz önerilmez.To define a new valid theme, you must create a new theme on SYST13 transaction and add all predefined theme variables with your own values. Theme variable concept and standard theme variable names will be discussed in this section. If there is a missing default theme variable in your theme, it means that your theme is invalid. Althought defining a theme is possible and easy, distrubuting and keeping it harmonious require some efford. So it is not recommended that you take on such a responsibility unless you have enough resources or time to undertake such an effort on a long-term basis.

Theme Variable'larıTheme Variables

Bir theme variable'ı, theme içinde tanımlanan bir variable'dır, bu yüzden değeri theme'e bağlı olarak değişebilir ama bir theme içinde tutarlı ve uyumludur. Bu nedenle, tüm control'ler theme'de tanımlanan aynı değeri kullanır.A theme variable is a variable defined in theme, so its value can change depending on theme, but it is consistent inside a theme and harmonious. Therefore, all controls uses the same value defined in theme.

Developer'lar bu variable'ları ilgili control feature'larına atayabilir. Örneğin, bir developer bir theme variable'ını control backcolor'ına, "red" olarak ayarlayabilir. Ve sistem gerçek background rengini user theme'inden okur ve control background'una atar.Developers can assign these variables to related control features. For example, a developer can set a theme variable control backcolor, like setting it to “red”. And system reads actual background color from user theme and assingn to the control background.

Static Theme Variable'larıStatic Theme Variables

Theme variable'larının ilk grubu static theme variable'larıdır. Static theme variable'ları theme'den theme'e değişmez, başka bir deyişle değerleri sabittir ve tüm theme'ler için aynıdır. Bu tür theme variable'ları çoğunlukla data row'larını renklendirmek için kullanılır. İşte static theme variable'larının listesi ve değerleri. Yeni bir theme tanımlarsanız bu variable'ları theme'inize eklemenize gerek yoktur, theme'iniz bu değerleri otomatik olarak içerecektir. Önerilmese de, custom theme'inizde aynı isimde bir variable tanımlayarak static theme variable'ını override edebilirsiniz.First group of theme variables are static theme variables. Static theme variables do not change theme from theme, in other words their values static and same for all themes. This kind of theme variables are mostly used for coloring data rows. Here are the list of static theme variables and their values. If you define a new theme you don’t need to add these variables to your theme, your theme will include this values automatically. Althought it is not recommended, you can override the static theme variable, defining a same named variable in your custom theme.

NameDescriptionInt ValueHex Value
BACKCOLOR15417436
BACKCOLOR210738424
BACKCOLOR314736597
BACKCOLOR416768688
BACKCOLOR515778005
BACKCOLOR615986072
BACKCOLOR716702930
BACKCOLOR814084518
BACKCOLOR912835058
BACKCOLOR1015597490
BACKCOLOR1116775035
BACKCOLOR1213762302
BACKCOLOR1310092390
BACKCOLOR1415437388
BACKCOLOR1515520078
BACKCOLOR1612409157
BACKCOLOR1710325933
BACKCOLOR1812247204
BACKCOLOR1916494651
BACKCOLOR2014530934
BACKCOLOR2111978090
BACKCOLOR229290200
BACKCOLORERROR15550776
BACKCOLOROK4698982
BACKCOLORSUBTOTAL0First alternative to color subtotal rows.14702848
BACKCOLORSUBTOTAL1Second alternative to color subtotal rows.16754176
BACKCOLORSUBTOTAL2Third alternative to color subtotal rows.16767809
BACKCOLORWARNING16503651

Standart Theme Variable İsimleriStandard Theme Variables Names

Theme variable'larının ikinci grubu theme'den theme'e değişir. Belirli amaçlar için bazı standart theme variable isimleri vardır. Yeni bir theme tanımlarsanız, geçerli bir theme için en azından bu theme variable'larını tanımlamalısınız. İşte önceden tanımlı theme variable isimlerinin, type'larının ve amaçlarının listesi.Second group of theme variables, changes theme to theme. There are some standard theme variable names for certain purposes. If you define a new theme, you must define at least these theme varaibles for a valid theme. Here are the list of predefined theme variable names and their type and purpose.

NameTypeDescription
BARBACKCOLORColorBackground color for the window header. (defines theme main color)
BARFORECOLORColorForeground color for the window header.
BBACKCOLORColorBackground color for the buttons.
BBORDERCOLORColorBorder color for buttons.
BBORDERSBorderButton borders as string (sample:1111)
BDBORDERCOLORColorBorder color for disabled buttons.
BDFORECOLORColorForeground color for disabled buttons.
BDICONCOLORColorDisabled icon color, this value is used while loading disabled icons instead of #242838
BDISABLEDBACKCOLORColorBackground color for disabled buttons.
BFORECOLORColorForeground color for buttons.
BHIGHLIGHTColorHighlight color for buttons (hover or mouse over color).
BHIGHLIGHTBORDERColorBorder color for highlighted buttons, used when mouse is over the button).
BIBACKCOLORColorBackground color for iconified buttons.
BICONCOLORColorIcon color, this value is used while loading svg icons instead of #242838.
BIGCAPTIONFontRegular font+3(size) for the data to be emphasized.
BIGCAPTIONBFontRegular font+3+bold for the data to be emphasized.
CHBACKGROUNDColorTable column and row header background color.
CHFOREGROUNDColorTable column and row header foreground color.
CHRTBACKCOLORColorBackgroud color for the charts.
CHRTFORECOLORColorForeground color for the charts.
DBACKCOLORColorDialog background color.
DESCRIPTIONLABELFCColorForeground color for description fields, less emphasized compared to original data fields.
DEVT40FONTFontSpecial font for code for code editors or console outputs.
DGHEIGHTFACTORString/DecimalDatagroup height factor. Decimal value to resize data group heights.
EBBORDERSBorderEditor borders.
EFBACKCOLORColorTextfield and editor background color.
EFBORDERCOLORColorBorder color for textfields.
EFBORDERSBorderTextfield borders.
EFDBACKCOLORColorBackgroud color for disabled textfields and editors.
EFDBORDERCOLORColorBorder color for disabled textfields and editors.
EFDFORECOLORColorForeground color for disabled textfields and editors.
EFFONTFontDefault font for textfields, buttons and labels.
EFFORECOLORColorForeground color for textfields and editors.
GBBACKCOLORColorBackground colors for the groupbox and tabbed pane control.
GBBORDERSBorderBorders for the groupboxes.
GBDTABBACKCOLORColorDisabled tab bacgroud color for tabbed pane control.
GBDTABFORECOLORColorDisabled tab foreground color for the tabbed pane control.
GBFONTFontGroupbox header font.
GBFORECOLORColorForeground color for the groupbox heades.
GBSTABBACKCOLORColorBackground color of selected tab for the tabbed pane control.
GBSTABFORECOLORColorForeground color for selected tab for the tabbed pane control
GBTABBACKCOLORColorBackground color for enabled but not selected tabs of tabbed pane control.
GBTABFORECOLORColorForeground color for enabled but not selected tabs of tabbed pane control.
GBTBACKCOLORColorBackground color for groupbox headers (title background).
HEADERBCKColorDialog header background color.
HEADERBRDBorderAll groupboxes named as “HEADER” must use this theme variable as background.
HEADERBTNBCKColorBackground color for buttons on headers.
HEADERBTNBRDBorderBorder for buttons on dialog headers.
HEADERBTNDBCKColorBackground color for disabled buttons on headers.
HEADERBTNDFCColorForeground color for disabled buttons on headers.
HEADERBTNFRColorForeground color for buttons on headers.
HEADERFONTFontDialog header font.
HEADERFRColorDialog header foreground color.
HEADEROBJBCKColorBackground color for the non-button controls on header.
HEADEROBJBRDBorderBorders for the non-button controls on header.
HEADEROBJFRColorForeground color for the non-button controls on header.
MAINBORDERCOLORColorBorder color for main window parts, tables, charts and orher large components
MENUBACKCOLORColorBackground color for the menu.
MENUFORECOLORColorForeground color for the menu.
MENUTABBCOLORColorBackgroud color for menu tabs.
MENUTABFCOLORColorForeground color for menu tabs.
MSGTBACKCOLORColorBackground color for message titles.
MSGTFORECOLORColorForeground color for message titles.
MUSTFIELDColorMustfield background color.
PBACKCOLORColorBackground color for the picture control.
PBFORECOLORColorForeground color for the progressbar control.
RESIZETABLEFONTIntegerInteger value that shows font resizing strategy for tables.
SBACKCOLORColorBakground color for shape controls.
SELECTIONBCKColorBackground color for selected texts, rows and items.
SELECTIONFRColorForeground color for selected texts, rows and items.
SFBACKCOLORColorBackground color for the labels.
SFFORECOLORColorForeground color for the labels.
SFORECOLORColorForeground color for the shape control.
SLINEWEIGHTIntegerLine weight for shape controls.
SMALLCAPTIONFontRegular font-3(size) for the sub information or less emphasized info.
SMALLCAPTIONBFontRegular font-3+bold for the sub information or less emphasized info.
SUBHEADERFONTFontHeader font size -3 font for sub headers.
TBACKCOLORColorTable background color.
TBORDERLINESColorColor of the lines betwenn cells in table.
TBORDERLINETYPEBorderVertical and horizontal border lines between cells. (sample: 11 or 10 etc.)
TFONTFontFont for table and tree.
TFORECOLORColorTable or tree foreground color.
TOOLBARBCKColorAll groupboxes named as “TOOLBAR” must use this theme variable as background.
TOOLBARBRDBorderBorder as string for all groupboxes named as toolbar. (sample:0000)
TOOLBARBTNBCKColorBackground color for the buttons on toolbars.
TOOLBARBTNBRDBorderBorders for the buttons on toolbars.
TOOLBARBTNDBCKColorBackground color for disabled buttons on toolbars.
TOOLBARBTNDFCColorForeground color for disabled buttons on toolbars.
TOOLBARBTNFRColorForeground color for the buttons on toolbars.
TOOLBARFRColorForeground color for toolbar.
TOOLBAROBJBCKColorBackground color for the non-button controls on toolbar.
TOOLBAROBJBRDBorderBorders for the non-button controls on toolbar.
TOOLBAROBJFRColorForeground color for the non-button controls on toolbar.
TRASTABBCOLORColorSelected transaction tab background color.
TRASTABFCOLORColorSeletted transaction tab foreground color.
TRATABBCOLORColorTransaction tab background color.
TRATABFCOLORColorTransaction tab foreground color.
TROWHEIGHTIntegerTablo row height.
TZEBRABACKCOLORColorTable row backgroud color.
TZEBRABACKCOLOR2ColorTable row background alternative, second color of zebra view.

Theme Variable'larının Yüklenme SırasıLoading Order of Theme Variables

Theme variable'larının yüklendiği sıra, nihai theme variable setinde önemlidir. Yükleme sırası sayesinde, belirli bir database'de önceden tanımlı bazı değerleri override etmek mümkündür. En son yüklenenler en yüksek önceliğe sahiptir. Sistem önce static theme variable'larını yükler, bu yüzden custom theme'inize aynı isimde bir variable ekleyerek bunları override edebilirsiniz.The order in which theme variables are loaded is important in the final theme variable set. Thanks to loading order. it is possible to override some predefined values ​​in a particular database. The most recently uploaded ones have the highest priority. System load static theme variables firstly, so you can override them by adding a same named variable to your custom theme.

Gömülü bir theme kullanırsanız sistem önce static theme variable'larını, ardından standart theme variable isimleri için gömülü değerleri yükler. Bu durumda, gömülü bir theme ile aynı isimde bir theme tanımlarsanız, aynı isimde bir theme variable'ı tanımlayarak gömülü bir değeri override edebilirsiniz.If you use an embedded theme system fistly loads static theme variables, then embedded values for standard theme variable names. In this case if you define a theme that has same name with an embedded theme you can override an embedded value by defining a same named theme variable.

Theme Variable'ları Nasıl Kullanılır?How to Use Theme Variables?

Theme variable'larını kullanmanın iki farklı yolu vardır. İlk yöntem, IDE üzerinde control'lere theme variable'ları ayarlamaktır. Bu işlemi gerçekleştirmek için, IDE'nin dialog design panel'inde bir control seçmeli, ardından properties panel'inde "Theme Variables" property'sine tıklayıp mevcut seçeneklere theme variable isimlerini yazmalısınız. Her control type'ının, bir theme variable atayabileceğiniz kendi seçenek seti vardır.There are two different ways to use theme variables. First method is setting theme variables to controls on IDE. To perform this operation, on dialog design panel of IDE you must select a control then click “Theme Variables” property on properties panel and write the names of theme variables to available options. Each control type has its own option set that you can assing a theme variable to.

Diğer seçenek, bir control property'sini dinamik olarak ayarlamak için bir theme variable'ı okumaktır. Bir theme variable değerini almak için GETTHEMEVARIABLE() system function'ını kullanmalısınız. Bu function, tek parametresi olarak theme variable ismini alır. İşte kullanıcının theme variable'ını okuyup BUTTON1'in background rengini bu variable'ın değeriyle ayarlayan örnek bir kod.The other option,is using reading a theme variable to set a control property dynamically. To get a theme variable value you must use GETTHEMEVARIABLE() system function. This function gets theme variable name as its only parameter. Here is a sample code that reads user’s theme variable and set background color of BUTTON1 with this variable’s value.

OBJECT:
        STRING STRINGVAR1,
        STRING STRINGVAR2,
        STRING THEMEVARNAME;

STRINGVAR1 = GETTHEMEVARIABLE('HEADERBCK');

THEMEVARNAME = 'HEADERBCK';
STRINGVAR2 = GETTHEMEVARIABLE(THEMEVARNAME);

SETSTYLE BACKCOLOR STRINGVAR1 TO BUTTON1;

Font CrossFont Cross

Class ve dialog cross'larına çok benzer şekilde, user interface ve pdf report oluşturma gibi server operation'ları için font tabanlı sorunları çözmek amacıyla font family'lerine cross reference eklemek mümkündür. Bir font cross tanımı varsa, sistem cross edilmiş font yerine atanan font'u kullanır. Örneğin Arial'dan Malgun Gothic'e bir font cross'unuz varsa, sistem Arial font'unun kullanıldığı her yerde Malgun Gothic font'unu kullanır.Very similar to class and dialog crosses, it is possible to add cross references to font familes to solve font based problems for user interface and server operations such as creating pdf reports etc. If there is a font cross definition system uses assigned font instead of crossed font. For example if you have a font cross Arial to Malgun Gothic, system uses Malgun Gothic font whereever Arial font is used.

Tüm kullanıcılar veya belirli bir kullanıcı ve profil için font cross tanımlamak mümkündür (25.02.25-01'den sonra). Tüm kullanıcılar için font cross'ları SYSFONTREF database table'ında saklanır ve bunları SYST99 Check Tables -> SYS -> SYSFONTREF check table'ında yönetebilirsiniz (9.03 sürümleri için).It is possible to define font cross for all users or a specific user and profile (after 25.02.25-01). Font crosses for all users is stored in SYSFONTREF database table, and you can manage them in SYST99 Check Tables -> SYS -> SYSFONTREF check table (for 9.03 releases).

Belirli bir kullanıcı veya profil için bir font cross ayarlamak için, SYST03 System Users -> Font References application'ını kullanabilirsiniz. Bu tür font cross'ları SYSUSERFONTREF table'ında saklanır.To set a font cross for a specific user or profile, you can use SYST03 System Users -> Font References application. This kind of font crosses are stored in SYSUSERFONTREF table.