Skip to content

Commit c97e527

Browse files
authored
Merge pull request #118 from rchastain2/edit_readme
Edit readme
2 parents a4d91d4 + 87f2aaa commit c97e527

File tree

1 file changed

+111
-41
lines changed

1 file changed

+111
-41
lines changed

readme.md renamed to README.md

Lines changed: 111 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ On Windows, it deals with the low level Windows GDI interface.
1111
MSEgui is like a GTK2/GTK3/Qt5 widgetset with same look-and-feel on each OS (Linux, FreeBSD, OpenBSD, NetBSD, MacOS and Windows).
1212
And because it is developed in Pascal, you have full control on the widgetset.
1313

14-
# Features
14+
## Features
15+
1516
- Compiles with FPC 2.6.4, 3.0.0, 3.0.2, 3.2.0, 3.2.2. and 3.3.1.
1617
- Compiles with FPC-LLVM 3.3.1.
1718
- For FreeBSD-x86_64, FreeBSD-i386, FreeBSD-aarch64,
@@ -22,17 +23,18 @@ And because it is developed in Pascal, you have full control on the widgetset.
2223
Darwin-MacOs-x86_64, Darwin-MacOs-aarch64,
2324
Windows-i386, Windows-x86_64.
2425
- Links to xlib and gdi32, no external widget library needed.
25-
- Internal character encoding is utf-16.
26-
- Uses anti aliased fonts on Linux (Xft).
27-
- All screen drawing is double buffered.
26+
- Internal character encoding is UTF-16.
27+
- Uses anti-aliased fonts on Linux (Xft).
28+
- All screen drawing is double-buffered.
2829
- Has docking forms and MDI.
2930
- Has embedded forms (similar to TFrame).
3031
- Has sophisticated database access components and data edit widgets.
3132
- Internationalization functionality with resource modules.
3233
- Report generator.
3334
- BGRABitmap graphic library compatible.
3435

35-
# IDE
36+
## IDE
37+
3638
- Integrated debugging.
3739
- Source code highlighting.
3840
- Source code navigation with support for include files.
@@ -44,11 +46,14 @@ And because it is developed in Pascal, you have full control on the widgetset.
4446
- Visual form inheritance.
4547
- Integrated report designer.
4648

47-
### About MSEide+MSEgui
49+
## About MSEide+MSEgui
50+
4851
MSEide+MSEgui is exclusively designed for use with Free Pascal (FPC). It is not compatible with Delphi or Lazarus.
4952

50-
### Demos and Examples
53+
## Demos and Examples
54+
5155
To get the most out of MSEide+MSEgui, we highly recommend exploring our extensive collection of demos located in this repository. These demos are tailored to showcase various aspects of MSEgui's capabilities, usage patterns, and how to address common programming tasks with FPC.
56+
5257
- **Demos in package**: in the mseide-msegui/apps/ folder.
5358
- **Demos from mseuniverse**: https://github.com/mse-org/mseuniverse
5459

@@ -58,15 +63,17 @@ Before you ask questions, contribute, or report issues, please take a moment to
5863

5964
[![Examples](https://img.shields.io/badge/Examples-Important-orange)](https://github.com/mse-org/mseuniverse)
6065

61-
# License
66+
## License
67+
6268
IDE and tools are under GPL, library under modified LGPL like FPC-RTL.
6369
Package maintainers may delete the files "apps/ide/COPYING.GPL",
6470
"lib/common/COPYING.LGPL" and "lib/common/COPYING.MSE".
6571

66-
# Installation
72+
## Installation
73+
6774
1. Download and install FPC, you can get it from
6875
http://www.freepascal.org/download.var
69-
2. Download mseide-msegui source from
76+
2. Download MSEide+MSEgui source from
7077
https://github.com/mse-org/mseide-msegui/archive/master.zip
7178
3. Extract them to a directory of your choice. For example "/home/myself/mseide-msegui".
7279
4. Download and unzip mseide binary according your OS from here:
@@ -87,30 +94,61 @@ libX11-devel or libX11-dev package or make a symbolic link
8794
see
8895
https://bugs.freepascal.org/view.php?id=32367
8996

90-
# If you want to compile the IDE
97+
## Other installation methods
98+
99+
### Bash installer
100+
101+
There is a Bash installer for Linux that you can find [here](https://github.com/rchastain2/scripts/tree/main/install-mseide).
102+
103+
The script clones the git repository, build the IDE, and creates a desktop shortcut.
104+
105+
The **-b** option allowes to choose installation root directory.
106+
107+
```bash
108+
sh install-mseide.sh -d $HOME
109+
```
110+
111+
## If you want to compile the IDE
91112

92113
1. In 'Project'-'Open' select 'sourcedirectory/apps/ide/mseide.prj'.
93114
2. 'Target'-'Continue'.
94115

95-
## Compiling MSEide from commandline:
116+
### Compiling MSEide from commandline
117+
96118
On Unix:
119+
120+
```
97121
fpc -Fulib/common/* -Fulib/common/kernel/linux apps/ide/mseide.pas
122+
```
98123

99124
On Windows:
125+
126+
```
100127
fpc -Fulib\common\* -Fulib\common\kernel\windows apps\ide\mseide.pas
128+
```
129+
130+
### If FPC crashes while compiling try on Linux and FreeBSD
101131

102-
## If FPC crashes while compiling try on Linux and FreeBSD
132+
```
103133
fpc -B -Fulib/common/* -Fulib/common/kernel/linux apps/ide/mseide.pas
134+
```
135+
104136
On Windows:
137+
138+
```
105139
fpc -B -Fulib\common\* -Fulib\common\kernel\windows apps\ide\mseide.pas
140+
```
141+
142+
## Creating a new GUI project
106143

107-
# Creating a new GUI project
108144
'Project'-'New'-'From Template', select "default.prj"
109145

110-
# Creating a new console project
146+
## Creating a new console project
147+
111148
'Project'-'New'-'From Template', select "console.prj"
112149

113-
# MSEgui command line parameters
150+
## MSEide command-line parameters
151+
114152
```
115153
--FONTALIAS=<alias>,<fontname>[,<fontheight>[,<fontwidth>[,<options>[,<xscale>]
116154
[,<ancestor>]]]]
@@ -150,10 +188,7 @@ fpc -B -Fulib\common\* -Fulib\common\kernel\windows apps\ide\mseide.pas
150188
151189
--NOSTATICGRAVITY
152190
Simulates staticgravity for buggy window managers.
153-
```
154191
155-
# MSEide command line parameters
156-
```
157192
-np
158193
Do not load a project.
159194
@@ -175,36 +210,44 @@ fpc -B -Fulib\common\* -Fulib\common\kernel\windows apps\ide\mseide.pas
175210
terminate MSEide.
176211
```
177212

178-
# MSEide environment variables
213+
## MSEide environment variables
214+
179215
Macros in 'Settings'-'Configure MSEide' can be overridden by environment
180216
variables. They will be overriden by --macrodef and 'Project'-'Options'-'Macros'.
217+
181218
Possible names:
182219
FPCDIR, FPCLIBDIR, MSEDIR, MSELIBDIR, SYNTAXDEFDIR, TEMPLATEDIR,
183220
COMPSTOREDIR, COMPILER, DEBUGGER, EXEEXT, TARGET, TARGETOSDIR.
184221

185-
# MSEide project macros
222+
## MSEide project macros
223+
186224
Predefined project macros:
187225
PROJECTNAME, PROJECTDIR, MAINFILE, TARGETFILE,
188226
TARGETENV (in format for "env" unix command), TARGETPARAMS,
189227
they can be overridden by 'Project'-'Options'-'Macros'.
190228

191-
# MSEide macro functions
229+
## MSEide macro functions
230+
192231
```
193232
${MAC_IFDEF(macroname)} returns the macro value if defined.
194233
${MAC_IFDEF(macroname,notdefinedvalue)} returns the macro value if defined,
195234
notdefinedvalue otherwise.
196235
${MAC_IFDEF(macroname,notdefinedvalue,definedvalue)}
197236
returns definedvalue if macroname is defined, notdefinedvalue otherwise.
198237
```
199-
# MSEide environment macros
238+
239+
## MSEide environment macros
240+
200241
```
201242
${ENV_VAR(variablename)} returns the variable value if defined.
202243
${ENV_VAR(variablename,notdefinedvalue)} returns the variable value if defined,
203244
notdefinedvalue otherwise.
204245
${ENV_VAR(variablename,notdefinedvalue,definedvalue)}
205246
returns definedvalue if variablename is defined, notdefinedvalue otherwise.
206247
```
207-
# MSEide string macros
248+
249+
## MSEide string macros
250+
208251
```
209252
Macro format is ${STR_*(text)}.
210253
STR_TRIM
@@ -219,7 +262,9 @@ STR_COALESCE
219262
${STR_COALESCE(text[,text...])} or
220263
${STR_COALESCE("text"[,"text"...])}
221264
```
222-
# MSEide file macros
265+
266+
## MSEide file macros
267+
223268
```
224269
Macro format is ${FILE_*(fileparameter)} or ${FILE_*("fileparameter")}.
225270
FILE_MSE convert to MSE format.
@@ -233,21 +278,29 @@ FILE_EXT file name extension.
233278
FILE_NONAME directory part only.
234279
FILE_NOEXT no file name extension.
235280
```
236-
# MSEide exec macros
281+
282+
## MSEide exec macros
283+
237284
```
238285
${EXEC_OUT(commandline[,timeoutms])}
239286
Executes commandline, returns the process output. Timeout in
240287
milli seconds, default = 1000, -1 = infinite.
241288
```
242-
# MSEide macros in 'Project'-'Options'-'Debugger'-'xterm Command'
289+
290+
## MSEide macros in 'Project'-'Options'-'Debugger'-'xterm Command'
291+
243292
```
244293
${PTS} expands to tty pts path.
245294
${PTSN} expands to tty pts number.
246295
${PTSH} expands to tty pts handle.
247296
Entering an empty string restores the default.
248297
```
249-
# MSEide external tools parameters macros
298+
299+
## MSEide external tools parameters macros
300+
250301
Predefined macros in 'Project'-'Options'-'Tools'-'Parameters':
302+
303+
```
251304
CURSOURCEFILE current source file.
252305
CURMODULEFILE current *.mfm file.
253306
CURSSELECTION selected text in source editor.
@@ -257,17 +310,23 @@ CURSDEFINITION} definition of the current token at cursor
257310
(Parse source before call) to be current.
258311
CURCOMPONENTCLASS current selected component class in form editor.
259312
CURPROPERTY current selected property in object inspector.
313+
```
314+
315+
## Known issues
316+
317+
### Antialiased text with MSEgui 32-bit on 64-bit Linux
260318

261-
# Antialiased text with MSEgui 32 bit on 64 bit Linux
262319
MSEgui uses Xft for antialiased fonts on Linux. Please install lib32-libxft
263320
package if necessary.
264321

265-
# Popup widgets behind the forms
322+
### Popup widgets behind the forms
323+
266324
If the popup widgets are showed behind the forms, try to start the
267325
MSEgui program with the option '--TOPLEVELRAISE'. Do *not* use this option
268326
if is not necessary (KDE, Gnome... work well without).
269327

270-
# Display problems with Linux radeon and other EXA drivers
328+
### Display problems with Linux radeon and other EXA drivers
329+
271330
If the display is distorted or slow add
272331
Option "EXAPixmaps" "off"
273332
to
@@ -277,28 +336,32 @@ https://bugs.freedesktop.org/show_bug.cgi?id=69543
277336
https://bugs.freedesktop.org/show_bug.cgi?id=84253
278337
or use the proprietary video driver for your video chip.
279338

280-
# Flashing taskbar widgets in IceWM
339+
### Flashing taskbar widgets in IceWM
340+
281341
Newer revisions of IceWM let the taskbar icons of MSEgui applications flash.
282342
Start the MSEgui application with the option '--TOPLEVELRAISE'.
283343

284-
# Invalid inputmanager for Ubuntu
344+
### Invalid inputmanager for Ubuntu
345+
285346
The utf-8 setup in Ubuntu seems to be incomplete. If you get the exception
286-
"egui : Invalid inputmanager tinternalapplication ." at program start, try to
347+
"egui : Invalid inputmanager tinternalapplication" at program start, try to
287348
replace your language locale in /usr/share/X11/locale/locale.dir
288349
by en_US as a workaround. Example for ru_RU.UTF-8:
289350
replace
290351
ru_RU.UTF-8/XLC_LOCALE ru_RU.UTF-8
291352
by
292353
en_US.UTF-8/XLC_LOCALE ru_RU.UTF-8
293354

294-
# Wrong window positions for Ubuntu 14.04
355+
### Wrong window positions for Ubuntu 14.04
356+
295357
Window positions in Unity are wrong because the Ubuntu windowmanager
296358
does not support static_gravity:
297359
http://askubuntu.com/questions/451903/wingravity-static-gravity-not-suppo
298360
https://bugs.launchpad.net/ubuntu/+bug/1312044
299361
http://askubuntu.com/questions/457456/wingravity-static-gravity-not-supported-in-14-04
300362

301-
# How to add custom components to MSEide
363+
## How to add custom components to MSEide
364+
302365
There is a project 'apps/myide/mymseide.prj' as a demo.
303366
Start MSEide, open project 'apps/myide/mymseide.prj', 'Project'-'Build',
304367
'Target'-'Continue',
@@ -320,19 +383,22 @@ apps/ide/COPYING.IDE
320383

321384
If you want to add custom icons to your components:
322385

323-
- Convert 24*24 pixel BMP or PNG files with tools/bmp2pas to
386+
- Convert 24x24 pixel BMP or PNG files with tools/bmp2pas to
324387
an icon unit ('*_bmp.pas').
325388
- Add the name of the icon unit to 'uses' in your register unit.
326389

327-
# How to run i18ndemo
390+
## How to run i18ndemo
391+
328392
```
329393
- Start MSEide.
330394
- 'Project'-'Open'-'yourdirectory/msegui/apps/i18ndemo/i18ndemo.prj'.
331395
- 'Project'-'Make' to create the rsj files.
332396
- 'Project'-'Open'-'yourdirectory/msegui/tools/i18n/msei18n.prj'.
333397
- 'Target'-'Continue'.
334398
```
399+
335400
In MSEi18n:
401+
336402
```
337403
- Adjust 'Settings'-'Configure MSEi18n'-'${MSEDIR}' and ${COMPILER}.
338404
- 'Open'-'yourdirectory/msegui/apps/i18ndemo/i18ndemo.trp'
@@ -343,8 +409,10 @@ In MSEi18n:
343409
- 'Target'-'Continue'.
344410
```
345411

346-
# SQLite
412+
## SQLite
413+
347414
tsqlite3connection field type mapping:
415+
348416
```
349417
Type name SQLite storage class Field type Data type
350418
+--------------------+---------------------+-------------+-------------+
@@ -369,7 +437,8 @@ tsqlite3connection field type mapping:
369437
+--------------------+---------------------+-------------+-------------+
370438
```
371439

372-
# ZeosLib
440+
## ZeosLib
441+
373442
Since msegui commit fbbaa979b, ZeosLib components are included in mseide by default.
374443
Also last stable source are included in /mseide-msegui/lib/common/mzeoslib/.
375444

@@ -380,7 +449,8 @@ If you want to recompile the IDE with new ZeosLib source, add parameter '-dmse_w
380449
There is a predefined IDE project apps/ide/mseide_zeos.prj, update 'Project'-
381450
'Options'-'Macros' according to your installation.
382451

383-
# Crosscompiling and remote debugging i386/x84_64-linux -> arm-linux
452+
## Crosscompiling and remote debugging i386/x84_64-linux -> arm-linux
453+
384454
For Raspberry Pi:
385455
- Establish a ssh login without password (public key authentication).
386456

0 commit comments

Comments
 (0)