Modify the shellstyle. dll file in visual style
2007-3-8 11:25:00
Author: Silencer
For details about shellstyle. dll modification *, refer to shellstyle tutorial from whistl3r.
Prerequisites
1. shellstyle. dll Structure
Uifiles:
Uifile1: defines the form and task list styles.
Uifile2: Define the control panel Style
Resources: resource file list
10, 11, 12: music folder
13, 14, 15: Image folder
16,17, 18: Search
19,20, 21: Video folder
22, 26: Control Panel
25: System Folder
100,101,102,103,104,105,106,107: panel open/close button
110,112: Panel top bar
120: Background
Strings: defines common strings or numeric values (font and font size)
Cpwebvw. CSS: defines the user account form style
2. resource usage
Rcstr (str_id)
Str_id: Number in strings
Rcbmp (BMP _id, stretching, transparent_color, width, height, size_flag, mirror)
BMP _id: Number in resources
Stretching: Filling Method 1 = normal, 3, = repeated, 6 = stretching, 7 = 32bit bitmap
Transparent_color: The color ignored during filling # rrggbb
Width, height: width, height
Size_flag: image size 1 = use the default image size, 0 = use the specified size
Mirror: reverse 0 = normal, 1 = reverse
Rcint (str_id) // convert string to numeric value
Str_id: Number in strings
Dtb (handlemap (a), B, c) // prediction is a method to obtain the image in the current topic. However, the image represented by the values of A, B, and C is not very clear.
Sysmetric (ID) // system variable table
ID value:
0 screen width
1 screen height
2 width of sizable Window Frame
3 height of sizable Window Frame
4 width of scroll arrows on vertical scroll bar
5 height of scroll arrows on vertical scroll bar
6 width of scroll arrows on horizontal scroll bar
7 height of scroll arrows on horizontal scroll bar
8 Height of window title
9 width of non-Sizable Window Frame
10 height of non-Sizable Window Frame
11 width of double or panel window frame
12 height of double or panel window frame
13 scroll box width on horizontal scroll bar in text editing windows
14 scroll box height on vertical scroll bar in text editing windows
15 minimized window icon width
16 minimized window icon height
17 maximum insertion point width
18 maximum insertion point height
19 single-line Menu Bar Height
20 maximized window width
21 maximized window height
22 Kanji window height
23 minimum sizable window width
24 minimum sizable window height
25 minimum window width
26. Minimum window height
27 window controls width
28 window controls height
29 1 If mouse hardware present; otherwise 0
30 1 for Microsoft Windows debugging version; otherwise 0
31 1 If mouse buttons swapped; otherwise 0
32 width of a button in a half-caption window's caption or title bar
33 height of half-caption window caption Area
Core
Uifile Compilation
The content in uifile is composed of many
<Style resid = ***>
...
Element [ID = atom (*****)]
{...}
Element [ID = atom (*****)]
{...}
...
...
</Style>
OfCodeSegment, used to define the style of a specific part and the style of its internal elements
The following attributes are available:
Contentalign: // element position. The following values are available:
Top: topleft, topright, topcenter
Middle: middleleft, middleright, middlecenter
Bottom: bottomleft, bottomright, bottingenter
Wrap: wrapleft, wrapright, wrapcenter // only applicable to text
Background: // background color
Foreground: // foreground color
Bordercolor: // The border color attributes can have the following values:
RGB (red, green, blue) // RGB color
Argb (alpha, red, green, blue) // contains the alpha channel
Gradient (argb (alpha, red, green, blue), argb (alpha, red, green, blue), direction) // gradient, the first 1st color variables are left, 2nd lower right driection: direction 0 = horizontal, 1 = vertical
Black, white, red, green, blue,... // description
Window, windowtext, buttonface, buttonshadow, buttonlight, buttontext, scrollbar, hotlight, activecaption, captiontext... // system color
Fontsize: // font size
Use the strings table Median
Fontface: // font
Use the strings table Median
Fontstyle: // Font Style
Use normal, bold, italic, and underline
Borderthickness: rect (left, top, right, bottom); // Border Width
Margin: rect (left, top, right, bottom); // keep the edge width unchanged during Scaling
Padding: rect (left, top, right, bottom); // element position
Take the default XP subject Luna's uifile1 as an Example
<Style resid = Main> // main form
Duilistview [ID = atom (listview)] // view the list
{
Contentalign: middlecenter;
Fontsize: sysmetric (-16); // sysmetric is a system variable table. For the corresponding variable types, see the previous table.
Fontweight: sysmetric (-17 );
Fontstyle: sysmetric (-18 );
Fontface: sysmetricstr (6 );
}
Duiaxhost [ID = atom (PreView)] // slide View
{
Contentalign: middlecenter;
Borderthickness: rect (20rp, 20rp, 20rp, 20rp );
Bordercolor: RGB (255, 0, 0 );
}
Element
{
Background: argb (0, 0, 0, 0 );
}
Element [ID = atom (blockade)] // system folder
{
Background: RGB (99,117,214 );
Borderthickness: rect (0rp, 0rp, 1rp, 1rp );
Bordercolor: white;
}
Element [ID = atom (blockadeaccent)] // split line between the main window and the sidebar
{
Background: gradient (argb (0,148,187,255), argb (117,214,), 1 );
}
Element [ID = atom (blockadeclient)] // background image of the system folder
{
Contentalign: bottomright;
Padding: rect (10rp, 0rp, 0rp, 0rp );
}
Element [ID = atom (blockadetitle)] // Title ("these files are hidden ")
{
Fontface: rcstr (2 );
Fontsize: rcint (18) pt;
Fontweight: rcint (11 );
Foreground: RGB (1, 214,223,245 );
Background: argb (0, 0, 0, 0 );
Padding: rect (0rp, 20rp, 10rp, 0rp );
Contentalign: wrapleft;
}
Element [ID = atom (blockademessage)] // Title ("this folder contains your system ...")
{
Fontface: rcstr (2 );
Fontsize: rcint (17) pt;
Fontweight: rcint (12 );
Foreground: white;
Background: argb (0, 0, 0, 0 );
Padding: rect (1rp, 15rp, 10rp, 0rp );
Contentalign: wrapleft;
}
Element [ID = atom (blockadeclear)] // "display the content of this folder" normal status
{
Margin: rect (0rp, 20rp, 0rp, 0rp );
}
Button [ID = atom (blockadeclearbutton)] [keyfocused] // "display content in this folder" keyboard triggered
{
Contentalign: focusrect;
}
Element [ID = atom (blockadecleartext)]
{
Fontface: rcstr (1 );
Fontsize: rcint (15) pt;
Fontweight: rcint (10 );
Foreground: white;
Background: argb (0, 0, 0, 0 );
Contentalign: wrapleft;
Padding: rect (3rp, 0rp, 0rp, 0rp );
}
Element [ID = atom (blockadecleartext)] [mousefocused] // "display the content of this folder" mouse-triggered
{
Cursor: hand;
Fontstyle: underline;
}
</Style>
// The elements in the following parts are not described in detail. For more information about the functions, see shellstyle tutorial of whistl3r.
<Style resid = mainsectionss>
<Style resid = mainsectiontaskss>
<Style resid = sectionss>
<Style resid = sectiontaskss>
<Style resid = taskpane>
<Style resid = namespaceiteminfolist>