mirror of
https://github.com/gnustep/libs-back.git
synced 2025-04-22 07:21:02 +00:00
Compare commits
45 commits
keysight_h
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
e59d923e90 | ||
|
e63ad3c1d2 | ||
|
b9038250e6 | ||
|
03a2e7e152 | ||
|
4e3ca27c0b | ||
|
ba1c582024 | ||
|
6e05e1e65e | ||
|
d27af6af10 | ||
|
e03ddf7b2b | ||
|
be85eb8ae6 | ||
|
085082a6cc | ||
|
0d60ea2935 | ||
|
4fea5f4dae | ||
|
c787d26af2 | ||
|
707c5239e3 | ||
|
b8933e4610 | ||
|
145ee71f5c | ||
|
6a221b4dc7 | ||
|
e66906ef38 | ||
|
f6707b897a | ||
|
9c31a7e016 | ||
|
ae6529e24f | ||
|
bfbe4d8b57 | ||
|
daf081b888 | ||
|
a0a45faaea | ||
|
0a32e7284e | ||
|
d8c05939b4 | ||
|
e781a3ae03 | ||
|
85bad5ded7 | ||
|
d0a2376e92 | ||
|
895fdbcf39 | ||
|
4bb1370086 | ||
|
519f57d85a | ||
|
421c09dac2 | ||
|
9ab65edd14 | ||
|
8f0146f50d | ||
|
feb28c4d84 | ||
|
3c1b5e1397 | ||
|
e9c633abf7 | ||
|
bc1d726f41 | ||
|
64f685db1c | ||
|
f56d4cfce2 | ||
|
1ec7eb6ecb | ||
|
7c0c511674 | ||
|
af84372398 |
41 changed files with 4585 additions and 2648 deletions
47
.github/workflows/main.yml
vendored
Normal file
47
.github/workflows/main.yml
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
########### Linux ###########
|
||||
linux:
|
||||
name: ci
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
container:
|
||||
image: ubuntu:22.04
|
||||
|
||||
# don't run pull requests from local branches twice
|
||||
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- server: x11
|
||||
graphics: cairo
|
||||
- server: x11
|
||||
graphics: xlib
|
||||
- server: headless
|
||||
graphics: headless
|
||||
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install packages
|
||||
run: |
|
||||
apt-get -q -y update
|
||||
apt-get -q -y install libgnustep-gui-dev libfreetype-dev libcairo2-dev libxt-dev pkg-config build-essential
|
||||
|
||||
- name: Build source
|
||||
run: |
|
||||
. /usr/share/GNUstep/Makefiles/GNUstep.sh
|
||||
./configure --enable-server=${{ matrix.server }} --enable-graphics=${{ matrix.graphics }}
|
||||
make && make install
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
. /usr/share/GNUstep/Makefiles/GNUstep.sh
|
||||
make check
|
25
ANNOUNCE
25
ANNOUNCE
|
@ -1,7 +1,7 @@
|
|||
1 Announcement
|
||||
**************
|
||||
|
||||
This is version 0.29.0 of the GNUstep GUI Backend ('gnustep-back').
|
||||
This is version 0.32.0 of the GNUstep GUI Backend (‘gnustep-back’).
|
||||
|
||||
1.1 What is the GNUstep GUI Backend?
|
||||
====================================
|
||||
|
@ -20,32 +20,27 @@ easily ported to other display systems.
|
|||
Window's Systems. It works via a DPS emulation engine to emulate the
|
||||
DPS functions required by the front-end system.
|
||||
|
||||
1.2 Noteworthy changes in version '0.29.0'
|
||||
1.2 Noteworthy changes in version ‘0.32.0’
|
||||
==========================================
|
||||
|
||||
The release includes an alpha version of the wayland backend and a few
|
||||
bug fixes.
|
||||
The release includes mostly bug fixes.
|
||||
|
||||
* Alpha version of the wayland backend.
|
||||
* Improved focus handling for WindowMaker interaction.
|
||||
* Speed up for font pattern resolving.
|
||||
* Improved appicon behavior under WindowMaker.
|
||||
* Prevent appicon flickering on WindowMaker at application start.
|
||||
* On Windows, consistently use 'GetWindowLongPtr' and
|
||||
'SetWindowLongPtr' in place of 'GetWindowLong' and 'SetWindowLong'
|
||||
for win32 and cairo for various win64 fixes.
|
||||
• Make window termination saver.
|
||||
• Use default interpolation in Cairo.
|
||||
• Allow UTF-8 input from XLookupString.
|
||||
• Improve building on MS Windows.
|
||||
|
||||
1.3 Where can you get it? How can you compile it?
|
||||
=================================================
|
||||
|
||||
The gnustep-back-0.29.0.tar.gz distribution file has been placed at
|
||||
The gnustep-back-0.32.0.tar.gz distribution file has been placed at
|
||||
<ftp://ftp.gnustep.org/pub/gnustep/core>.
|
||||
|
||||
It is accompanied by gnustep-back-0.29.0.tar.gz.sig, a PGP signature
|
||||
It is accompanied by gnustep-back-0.32.0.tar.gz.sig, a PGP signature
|
||||
which you can validate by putting both files in the same directory and
|
||||
using:
|
||||
|
||||
gpg --verify gnustep-back-0.29.0.tar.gz.sig
|
||||
gpg --verify gnustep-back-0.32.0.tar.gz.sig
|
||||
|
||||
Signature has been created using the key with the following
|
||||
fingerprint:
|
||||
|
|
17
ChangeLog
17
ChangeLog
|
@ -1,3 +1,20 @@
|
|||
2025-02-11 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* ANNOUNCE:
|
||||
* INSTALL:
|
||||
* NEWS:
|
||||
* README:
|
||||
* Version: bump to 0.32.0
|
||||
New release
|
||||
|
||||
2024-05-26 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* ChangeLog: Update for new release
|
||||
* ANNOUNCE:
|
||||
* NEWS:
|
||||
* Documentation/news.texi: Update of release notes for 0.31.0.
|
||||
* Version: bump to 0.31.0
|
||||
|
||||
2022-12-29 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* ChangeLog: Update for new release
|
||||
|
|
|
@ -7,6 +7,30 @@
|
|||
@include version.texi
|
||||
@end ifset
|
||||
|
||||
@section Noteworthy changes in version @samp{0.32.0}
|
||||
|
||||
The release includes mostly bug fixes.
|
||||
|
||||
@itemize @bullet
|
||||
@item Make window termination saver.
|
||||
@item Use default interpolation in Cairo.
|
||||
@item Allow UTF-8 input from XLookupString.
|
||||
@item Improve building on MS Windows.
|
||||
@end itemize
|
||||
|
||||
@ifclear ANNOUNCE-ONLY
|
||||
|
||||
@section Noteworthy changes in version @samp{0.31.0}
|
||||
|
||||
The release includes mostly improvements for pasteboard handling and a few bug fixes.
|
||||
|
||||
@itemize @bullet
|
||||
@item Improve font name creation.
|
||||
@item Add headless backend.
|
||||
@item Add CI pipeline.
|
||||
@end itemize
|
||||
|
||||
|
||||
@section Noteworthy changes in version @samp{0.30.0}
|
||||
|
||||
The release includes mostly improvements for the new Wayland backend and a few bug fixes.
|
||||
|
@ -18,7 +42,6 @@ The release includes mostly improvements for the new Wayland backend and a few
|
|||
and at every Notify.
|
||||
@end itemize
|
||||
|
||||
@ifclear ANNOUNCE-ONLY
|
||||
|
||||
@section Noteworthy changes in version @samp{0.29.0}
|
||||
|
||||
|
|
33
Headers/headless/HeadlessContext.h
Normal file
33
Headers/headless/HeadlessContext.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
HeadlessContext.h
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNUstep.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef HeadlessContext_h
|
||||
#define HeadlessContext_h
|
||||
|
||||
#include "gsc/GSContext.h"
|
||||
|
||||
@interface HeadlessContext : GSContext
|
||||
@end
|
||||
|
||||
#endif /* HeadlessContext_h */
|
42
Headers/headless/HeadlessFaceInfo.h
Normal file
42
Headers/headless/HeadlessFaceInfo.h
Normal file
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
HeadlessFaceInfo.h
|
||||
|
||||
Copyright (C) 2003, 2023 Free Software Foundation, Inc.
|
||||
|
||||
Based on work by: Banlu Kemiyatorn <object at gmail dot com>
|
||||
Based on work by: Alexander Malmberg <alexander@malmberg.org>
|
||||
Based on work by: Fred Kiefer <fredkiefer@gmx.de>
|
||||
|
||||
This file is part of GNUstep.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef HeadlessFaceInfo_h
|
||||
#define HeadlessFaceInfo_h
|
||||
|
||||
#include <Foundation/NSObject.h>
|
||||
|
||||
@interface HeadlessFaceInfo : NSObject
|
||||
{
|
||||
void *_fontFace;
|
||||
}
|
||||
|
||||
- (void *)fontFace;
|
||||
|
||||
@end
|
||||
#endif /* HeadlessFaceInfo_h */
|
41
Headers/headless/HeadlessFontEnumerator.h
Normal file
41
Headers/headless/HeadlessFontEnumerator.h
Normal file
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
HeadlessFontEnumeartorInfo.h
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
Based on work by: Banlu Kemiyatorn <object at gmail dot com>
|
||||
|
||||
This file is part of GNUstep.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef HeadlessFontEnumerator_h
|
||||
#define HeadlessFontEnumerator_h
|
||||
|
||||
#include <GNUstepGUI/GSFontInfo.h>
|
||||
|
||||
#include "headless/HeadlessFaceInfo.h"
|
||||
|
||||
@interface HeadlessFontEnumerator : GSFontEnumerator
|
||||
{
|
||||
}
|
||||
+ (Class) faceInfoClass;
|
||||
+ (HeadlessFaceInfo *) fontWithName: (NSString *)name;
|
||||
@end
|
||||
|
||||
#endif /* HeadlessFontEnumerator_h */
|
35
Headers/headless/HeadlessFontInfo.h
Normal file
35
Headers/headless/HeadlessFontInfo.h
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
HeadlessFontInfo.h
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
Based on work by: Banlu Kemiyatorn <object at gmail dot com>
|
||||
|
||||
This file is part of GNUstep.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef HeadlessFontInfo_h
|
||||
#define HeadlessFontInfo_h
|
||||
|
||||
#include <GNUstepGUI/GSFontInfo.h>
|
||||
|
||||
@interface HeadlessFontInfo : GSFontInfo
|
||||
@end
|
||||
|
||||
#endif /* HeadlessFontInfo_h */
|
37
Headers/headless/HeadlessGState.h
Normal file
37
Headers/headless/HeadlessGState.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
HeadlessGState.h
|
||||
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
|
||||
Based on work by: Banlu Kemiyatorn <object at gmail dot com>
|
||||
|
||||
This file is part of GNUstep.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef HeadlessGState_h
|
||||
#define HeadlessGState_h
|
||||
|
||||
#include "gsc/GSGState.h"
|
||||
|
||||
@interface HeadlessGState : GSGState
|
||||
{
|
||||
}
|
||||
@end
|
||||
|
||||
#endif /* HeadlessGState_h */
|
37
Headers/headless/HeadlessServer.h
Normal file
37
Headers/headless/HeadlessServer.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
HeadlessServer.h
|
||||
|
||||
Copyright (C) 2002-2015 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNUstep.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef HeadlessServer_h
|
||||
#define HeadlessServer_h
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <GNUstepGUI/GSDisplayServer.h>
|
||||
|
||||
@interface HeadlessServer : GSDisplayServer
|
||||
{
|
||||
}
|
||||
@end
|
||||
|
||||
#endif /* HeadlessServer_h */
|
12
INSTALL
12
INSTALL
|
@ -5,7 +5,7 @@
|
|||
================
|
||||
|
||||
This file documents the installation of the GNUstep Backend Library,
|
||||
'gnustep-back'. If you are installing this package as part of the
|
||||
‘gnustep-back’. If you are installing this package as part of the
|
||||
GNUstep core package, read the file GNUstep-HOWTO for more complete
|
||||
instructions on how to install the entire GNUstep package (including
|
||||
this library). GNUstep-HOWTO is located at <http://www.gnustep.org>
|
||||
|
@ -15,9 +15,9 @@ this library). GNUstep-HOWTO is located at <http://www.gnustep.org>
|
|||
1.2 Configuration
|
||||
=================
|
||||
|
||||
Configuration is performed by running the 'configure' program at a shell
|
||||
Configuration is performed by running the ‘configure’ program at a shell
|
||||
prompt. You may want to use some of the optional arguments to the
|
||||
'configure' program. Type 'configure --help' for a list. GNUstep
|
||||
‘configure’ program. Type ‘configure --help’ for a list. GNUstep
|
||||
specific options are at the end of this list (if any).
|
||||
|
||||
The backend comes with several different window server and graphics
|
||||
|
@ -27,7 +27,7 @@ choose the art graphical drawing implementation, run
|
|||
|
||||
configure --enable-graphics=art
|
||||
|
||||
Type 'configure --help' for a list of graphical drawing
|
||||
Type ‘configure --help’ for a list of graphical drawing
|
||||
implementations.
|
||||
|
||||
You can also change the name of the backend when configuring it.
|
||||
|
@ -52,8 +52,8 @@ program:
|
|||
|
||||
To compile this library, type make. After this is complete, type make
|
||||
install (make sure you are the root user). Some additional options you
|
||||
can use with make are 'debug=yes' to make a debugging version of the
|
||||
library and 'shared=no' to make a static version of the library. See
|
||||
can use with make are ‘debug=yes’ to make a debugging version of the
|
||||
library and ‘shared=no’ to make a static version of the library. See
|
||||
the gstep-make package for more information on these options.
|
||||
|
||||
1.4 Installing
|
||||
|
|
213
NEWS
213
NEWS
|
@ -1,79 +1,110 @@
|
|||
1 NEWS
|
||||
******
|
||||
|
||||
1.1 Noteworthy changes in version '0.29.0'
|
||||
1.1 Noteworthy changes in version ‘0.32.0’
|
||||
==========================================
|
||||
|
||||
The release includes mostly bug fixes.
|
||||
|
||||
• Make window termination saver.
|
||||
• Use default interpolation in Cairo.
|
||||
• Allow UTF-8 input from XLookupString.
|
||||
• Improve building on MS Windows.
|
||||
|
||||
1.2 Noteworthy changes in version ‘0.31.0’
|
||||
==========================================
|
||||
|
||||
The release includes mostly improvements for pasteboard handling and a
|
||||
few bug fixes.
|
||||
|
||||
• Improve font name creation.
|
||||
• Add headless backend.
|
||||
• Add CI pipeline.
|
||||
|
||||
1.3 Noteworthy changes in version ‘0.30.0’
|
||||
==========================================
|
||||
|
||||
The release includes mostly improvements for the new Wayland backend and
|
||||
a few bug fixes.
|
||||
|
||||
• Improvements for the wayland backend.
|
||||
• Don't use font hinting for cauro, when using scaling.
|
||||
• Fix pasteboard transfer of huge data by deleting property on begin
|
||||
and at every Notify.
|
||||
|
||||
1.4 Noteworthy changes in version ‘0.29.0’
|
||||
==========================================
|
||||
|
||||
The release includes an alpha version of the wayland backend and a few
|
||||
bug fixes.
|
||||
|
||||
* Alpha version of the wayland backend.
|
||||
* Improved focus handling for WindowMaker interaction.
|
||||
* Speed up for font pattern resolving.
|
||||
* Improved appicon behavior under WindowMaker.
|
||||
* Prevent appicon flickering on WindowMaker at application start.
|
||||
* On Windows, consistently use 'GetWindowLongPtr' and
|
||||
'SetWindowLongPtr' in place of 'GetWindowLong' and 'SetWindowLong'
|
||||
• Alpha version of the wayland backend.
|
||||
• Improved focus handling for WindowMaker interaction.
|
||||
• Speed up for font pattern resolving.
|
||||
• Improved appicon behavior under WindowMaker.
|
||||
• Prevent appicon flickering on WindowMaker at application start.
|
||||
• On Windows, consistently use ‘GetWindowLongPtr’ and
|
||||
‘SetWindowLongPtr’ in place of ‘GetWindowLong’ and ‘SetWindowLong’
|
||||
for win32 and cairo for various win64 fixes.
|
||||
|
||||
1.2 Noteworthy changes in version '0.28.0'
|
||||
1.5 Noteworthy changes in version ‘0.28.0’
|
||||
==========================================
|
||||
|
||||
This release includes a few bugfixes and a huge rework of multi monitor
|
||||
handling.
|
||||
|
||||
* Improved focus handling for WindowMaker interaction.
|
||||
* Cursor improvements.
|
||||
* Better handling of fonts with fontconfig.
|
||||
* Simplify code that converts images for X11.
|
||||
* art: Remove ftfont-old.m.
|
||||
* Use Xrandr for multi monitor support.
|
||||
• Improved focus handling for WindowMaker interaction.
|
||||
• Cursor improvements.
|
||||
• Better handling of fonts with fontconfig.
|
||||
• Simplify code that converts images for X11.
|
||||
• art: Remove ftfont-old.m.
|
||||
• Use Xrandr for multi monitor support.
|
||||
|
||||
1.3 Noteworthy changes in version '0.27.0'
|
||||
1.6 Noteworthy changes in version ‘0.27.0’
|
||||
==========================================
|
||||
|
||||
This release includes a few bugfixes.
|
||||
|
||||
* configure: Improve configuration.
|
||||
* xlib: Improve xft font classes.
|
||||
* x11: Enable drawing in secondary threads.
|
||||
* x11: Better handling of atoms. Method to get the window manager.
|
||||
* opal: Improve colour handling
|
||||
• configure: Improve configuration.
|
||||
• xlib: Improve xft font classes.
|
||||
• x11: Enable drawing in secondary threads.
|
||||
• x11: Better handling of atoms. Method to get the window manager.
|
||||
• opal: Improve colour handling
|
||||
|
||||
1.4 Noteworthy changes in version '0.26.2'
|
||||
1.7 Noteworthy changes in version ‘0.26.2’
|
||||
==========================================
|
||||
|
||||
This release contains no changes since 0.26.1. It is released to
|
||||
coincide with gnustep-gui 0.26.2, which has important bugfixes related
|
||||
to printing.
|
||||
|
||||
1.5 Noteworthy changes in version '0.26.1'
|
||||
1.8 Noteworthy changes in version ‘0.26.1’
|
||||
==========================================
|
||||
|
||||
This release contains no changes since 0.26.0. It is released to
|
||||
coincide with gnustep-gui 0.26.1, released to mark gnustep-base 1.25.1
|
||||
as the requirement for gnustep-gui.
|
||||
|
||||
1.6 Noteworthy changes in version '0.26.0'
|
||||
1.9 Noteworthy changes in version ‘0.26.0’
|
||||
==========================================
|
||||
|
||||
This release includes a few bugfixes, as well as compatibility
|
||||
improvements as a result of GSoC 2017 project.
|
||||
|
||||
* opal: Bridging categories between Opal and GNUstep GUI. Added onto
|
||||
• opal: Bridging categories between Opal and GNUstep GUI. Added onto
|
||||
NSColor, NSImage and NSImageRep.
|
||||
* cairo: Get -DPSshow: to work on scaled windows.
|
||||
* opal: Allow creating a NSGraphicsContext with a custom graphics
|
||||
• cairo: Get -DPSshow: to work on scaled windows.
|
||||
• opal: Allow creating a NSGraphicsContext with a custom graphics
|
||||
port, other than a CGContext.
|
||||
* misc: Fix reported static analyser warnings.
|
||||
• misc: Fix reported static analyser warnings.
|
||||
|
||||
1.7 Noteworthy changes in version '0.25.1'
|
||||
==========================================
|
||||
1.10 Noteworthy changes in version ‘0.25.1’
|
||||
===========================================
|
||||
|
||||
Small fixes and cleanups.
|
||||
|
||||
1.8 Noteworthy changes in version '0.25.0'
|
||||
==========================================
|
||||
1.11 Noteworthy changes in version ‘0.25.0’
|
||||
===========================================
|
||||
|
||||
Support for pattern phase, compositing operation, image interpolation
|
||||
and antialiasing per gstate.
|
||||
|
@ -84,28 +115,28 @@ and antialiasing per gstate.
|
|||
|
||||
Various fixes.
|
||||
|
||||
1.9 Noteworthy changes in version '0.24.1'
|
||||
==========================================
|
||||
1.12 Noteworthy changes in version ‘0.24.1’
|
||||
===========================================
|
||||
|
||||
Improvements in win32 display and mouse tracking.
|
||||
|
||||
Various minor bugfixes and cleanups.
|
||||
|
||||
1.10 Noteworthy changes in version '0.24.0'
|
||||
1.13 Noteworthy changes in version ‘0.24.0’
|
||||
===========================================
|
||||
|
||||
Added experimental Opal backend.
|
||||
|
||||
Allow for ARGB visual for OpenGL.
|
||||
|
||||
1.11 Noteworthy changes in version '0.23.0'
|
||||
1.14 Noteworthy changes in version ‘0.23.0’
|
||||
===========================================
|
||||
|
||||
Added cairo support for ms-windows.
|
||||
|
||||
Updated for NSInteger/CGFloat support
|
||||
|
||||
1.12 Noteworthy changes in version '0.22.0'
|
||||
1.15 Noteworthy changes in version ‘0.22.0’
|
||||
===========================================
|
||||
|
||||
Added new user defaults to make app icons and mini windows sticky
|
||||
|
@ -114,7 +145,7 @@ Added new user defaults to make app icons and mini windows sticky
|
|||
Many improvements to Cairo rendering, including buffering, glyphs and
|
||||
DPI scaling.
|
||||
|
||||
1.13 Noteworthy changes in version '0.20.0'
|
||||
1.16 Noteworthy changes in version ‘0.20.0’
|
||||
===========================================
|
||||
|
||||
Cairo is now the default backend, but falls back to art and xlib
|
||||
|
@ -124,37 +155,37 @@ gracefully.
|
|||
|
||||
More Windows improvements.
|
||||
|
||||
1.14 Noteworthy changes in version '0.19.0'
|
||||
1.17 Noteworthy changes in version ‘0.19.0’
|
||||
===========================================
|
||||
|
||||
This is an (unstable) copy of the 0.18.0 release
|
||||
|
||||
1.15 Noteworthy changes in version '0.18.0'
|
||||
1.18 Noteworthy changes in version ‘0.18.0’
|
||||
===========================================
|
||||
|
||||
Many Windows improvements
|
||||
|
||||
Implement pattern colours for all backends.
|
||||
|
||||
1.16 Noteworthy changes in version '0.17.1'
|
||||
1.19 Noteworthy changes in version ‘0.17.1’
|
||||
===========================================
|
||||
|
||||
Use DejaVu as another fallback font.
|
||||
|
||||
1.17 Noteworthy changes in version '0.17.0'
|
||||
1.20 Noteworthy changes in version ‘0.17.0’
|
||||
===========================================
|
||||
|
||||
Key repeat support implemented in X11.
|
||||
|
||||
OpenGL fixes and improvements.
|
||||
|
||||
1.18 Noteworthy changes in version '0.16.0'
|
||||
1.21 Noteworthy changes in version ‘0.16.0’
|
||||
===========================================
|
||||
|
||||
Transparent windows implemented in WIN32 backend, better position and
|
||||
scaling of images. General cleanup of code.
|
||||
|
||||
1.19 Noteworthy changes in version '0.14.0'
|
||||
1.22 Noteworthy changes in version ‘0.14.0’
|
||||
===========================================
|
||||
|
||||
Added code to automatically make any window which uses the
|
||||
|
@ -162,7 +193,7 @@ NSDesktopWindowLevel also be omnipresent.
|
|||
|
||||
Many glyph drawing improvements.
|
||||
|
||||
1.20 Noteworthy changes in version '0.13.2'
|
||||
1.23 Noteworthy changes in version ‘0.13.2’
|
||||
===========================================
|
||||
|
||||
Added basic implementation of window levels on Windows. In general a
|
||||
|
@ -176,24 +207,24 @@ bunch of improvements in the Windows backend.
|
|||
frontend. This version or greater of the backend needs to be used with
|
||||
gui 0.13.2
|
||||
|
||||
1.21 Noteworthy changes in version '0.13.1'
|
||||
1.24 Noteworthy changes in version ‘0.13.1’
|
||||
===========================================
|
||||
|
||||
Minor improvements.
|
||||
|
||||
1.22 Noteworthy changes in version '0.13.0'
|
||||
1.25 Noteworthy changes in version ‘0.13.0’
|
||||
===========================================
|
||||
|
||||
Many improvements to the cairo backend. Add DPSshfill for all backends.
|
||||
Better handling of X event times.
|
||||
|
||||
1.23 Noteworthy changes in version '0.12.0'
|
||||
1.26 Noteworthy changes in version ‘0.12.0’
|
||||
===========================================
|
||||
|
||||
Big improvements to the cairo graphics and Window backend. Also better
|
||||
support for OpenGL.
|
||||
|
||||
1.24 Noteworthy changes in version '0.11.0'
|
||||
1.27 Noteworthy changes in version ‘0.11.0’
|
||||
===========================================
|
||||
|
||||
Bugfixes to art and xlib.
|
||||
|
@ -201,17 +232,17 @@ Bugfixes to art and xlib.
|
|||
There was some work on the Windows backend for the GDI interface by
|
||||
Christopher Armstrong.
|
||||
|
||||
1.25 Noteworthy changes in version '0.10.3'
|
||||
1.28 Noteworthy changes in version ‘0.10.3’
|
||||
===========================================
|
||||
|
||||
Fixes. A lot of Cairo backend work.
|
||||
|
||||
1.26 Noteworthy changes in version '0.10.2'
|
||||
1.29 Noteworthy changes in version ‘0.10.2’
|
||||
===========================================
|
||||
|
||||
The Backend can set UTF8 window titles where this is allowed.
|
||||
|
||||
1.27 Noteworthy changes in version '0.10.1'
|
||||
1.30 Noteworthy changes in version ‘0.10.1’
|
||||
===========================================
|
||||
|
||||
The art graphics module is the default now. As was previously the case,
|
||||
|
@ -228,69 +259,69 @@ Cairo library before it will work with GNUstep. Due to this, this
|
|||
module is still considered beta. Ask on the mailing lists for help with
|
||||
this.
|
||||
|
||||
1.28 Noteworthy changes in version '0.10.0'
|
||||
1.31 Noteworthy changes in version ‘0.10.0’
|
||||
===========================================
|
||||
|
||||
The installed name of the backend now includes an interface version
|
||||
number. This avoids the potential version mismatch between the frontend
|
||||
(GUI) library and the backend.
|
||||
|
||||
* Alpha blending was implemented for Windows, although it does not
|
||||
• Alpha blending was implemented for Windows, although it does not
|
||||
seem to work on some machines.
|
||||
|
||||
1.29 Noteworthy changes in version '0.9.5'
|
||||
1.32 Noteworthy changes in version ‘0.9.5’
|
||||
==========================================
|
||||
|
||||
* Added support for window alpha on X servers.
|
||||
* Add support for old and new freetype libs.
|
||||
* Some improvements to the Windows backend.
|
||||
• Added support for window alpha on X servers.
|
||||
• Add support for old and new freetype libs.
|
||||
• Some improvements to the Windows backend.
|
||||
|
||||
1.30 Noteworthy changes in version '0.9.4'
|
||||
1.33 Noteworthy changes in version ‘0.9.4’
|
||||
==========================================
|
||||
|
||||
* Fast drawing on 8 bit displays was added (although it might only
|
||||
• Fast drawing on 8 bit displays was added (although it might only
|
||||
speed things up on old X11 servers and/or remote servers).
|
||||
* GNUstep modifier keys are mapped to KeySyms instead of KeyCodes
|
||||
* Added a Cairo backend, although it is probably non-functional.
|
||||
• GNUstep modifier keys are mapped to KeySyms instead of KeyCodes
|
||||
• Added a Cairo backend, although it is probably non-functional.
|
||||
Anyone is invited to contribute to making it work.
|
||||
* art backend supports reading from a window.
|
||||
* Add internal window decoration handling.
|
||||
• art backend supports reading from a window.
|
||||
• Add internal window decoration handling.
|
||||
|
||||
1.31 Noteworthy changes in version '0.9.3'
|
||||
1.34 Noteworthy changes in version ‘0.9.3’
|
||||
==========================================
|
||||
|
||||
* A number of W32 window event enhancements
|
||||
* art backend glyph drawing with alpha enhancements.
|
||||
* libwraster is no longer checked for - image functions now in
|
||||
• A number of W32 window event enhancements
|
||||
• art backend glyph drawing with alpha enhancements.
|
||||
• libwraster is no longer checked for - image functions now in
|
||||
frontend
|
||||
|
||||
1.32 Noteworthy changes in version '0.9.2'
|
||||
1.35 Noteworthy changes in version ‘0.9.2’
|
||||
==========================================
|
||||
|
||||
* Art backend added support for grayscale, one-isblack colorspaces.
|
||||
* Windows pasteboard interaction handling added.
|
||||
* Better focus handling on Windows.
|
||||
* Better font and draw handling on Windows.
|
||||
• Art backend added support for grayscale, one-isblack colorspaces.
|
||||
• Windows pasteboard interaction handling added.
|
||||
• Better focus handling on Windows.
|
||||
• Better font and draw handling on Windows.
|
||||
|
||||
1.33 Noteworthy changes in version '0.9.1'
|
||||
1.36 Noteworthy changes in version ‘0.9.1’
|
||||
==========================================
|
||||
|
||||
Color on 8 bit displays works correctly now. WindowMaker properties are
|
||||
always set now in case another manager is emulating WindowMaker styles.
|
||||
|
||||
1.34 Noteworthy changes in version '0.9.0'
|
||||
1.37 Noteworthy changes in version ‘0.9.0’
|
||||
==========================================
|
||||
|
||||
Some more improvements to copy/paste support following ICCCM
|
||||
specifications (like COMPOUND_TEXT support).
|
||||
|
||||
1.35 Noteworthy changes in version '0.8.9'
|
||||
1.38 Noteworthy changes in version ‘0.8.9’
|
||||
==========================================
|
||||
|
||||
* Much improved pasting support between X apps and GNUstep apps.
|
||||
* Backend headers are no longer installed (now private).
|
||||
• Much improved pasting support between X apps and GNUstep apps.
|
||||
• Backend headers are no longer installed (now private).
|
||||
|
||||
1.36 Noteworthy changes in version '0.8.8'
|
||||
1.39 Noteworthy changes in version ‘0.8.8’
|
||||
==========================================
|
||||
|
||||
Full multi-byte/unicode support for East Asian languages was added to
|
||||
|
@ -298,60 +329,60 @@ the xlib backend. The X11 server now supports use of the XIM input
|
|||
method for entering non-keyboard characters. Both contributions thanks
|
||||
to Kazunobu Kuriyama.
|
||||
|
||||
* Also added slightly better EWMH support.
|
||||
* Art backend works with more versions of freetype.
|
||||
• Also added slightly better EWMH support.
|
||||
• Art backend works with more versions of freetype.
|
||||
|
||||
1.37 Noteworthy changes in version '0.8.7'
|
||||
1.40 Noteworthy changes in version ‘0.8.7’
|
||||
==========================================
|
||||
|
||||
Handle NSBezierPath glyph drawing in art backend. art backend compiles
|
||||
with all freetype except 2.1.3 via ifdefs.
|
||||
|
||||
1.38 Noteworthy changes in version '0.8.6'
|
||||
1.41 Noteworthy changes in version ‘0.8.6’
|
||||
==========================================
|
||||
|
||||
Bug fixes. See the gnustep-gui NEWS for changes.
|
||||
|
||||
1.39 Noteworthy changes in version '0.8.5'
|
||||
1.42 Noteworthy changes in version ‘0.8.5’
|
||||
==========================================
|
||||
|
||||
Text system improvements. See the gnustep-gui NEWS for changes.
|
||||
|
||||
1.40 Noteworthy changes in version '0.8.3'
|
||||
1.43 Noteworthy changes in version ‘0.8.3’
|
||||
==========================================
|
||||
|
||||
See the gnustep-gui NEWS for changes.
|
||||
|
||||
1.41 Noteworthy changes in version '0.8.2'
|
||||
1.44 Noteworthy changes in version ‘0.8.2’
|
||||
==========================================
|
||||
|
||||
Improved font handling in art backend. Improved compositing with
|
||||
transformations and clipping in art backend.
|
||||
|
||||
1.42 Noteworthy changes in version '0.8.1'
|
||||
1.45 Noteworthy changes in version ‘0.8.1’
|
||||
==========================================
|
||||
|
||||
art (libart-based) backend added. Use ./configure -enable-graphics=art
|
||||
to choose this backend.
|
||||
|
||||
1.43 Noteworthy changes in version '0.8.0'
|
||||
1.46 Noteworthy changes in version ‘0.8.0’
|
||||
==========================================
|
||||
|
||||
Bug fixes.
|
||||
|
||||
1.44 Noteworthy changes in version '0.7.9'
|
||||
1.47 Noteworthy changes in version ‘0.7.9’
|
||||
==========================================
|
||||
|
||||
Bug fixes.
|
||||
|
||||
1.45 Noteworthy changes in version '0.7.8'
|
||||
1.48 Noteworthy changes in version ‘0.7.8’
|
||||
==========================================
|
||||
|
||||
Simplified backend selection using -enable-server and -enable-graphics.
|
||||
Add -with-library-flags and -with-include-flags for adding additonal
|
||||
flags. Set name with -with-name
|
||||
|
||||
1.46 Noteworthy changes in version '0.7.7'
|
||||
1.49 Noteworthy changes in version ‘0.7.7’
|
||||
==========================================
|
||||
|
||||
First release. Most components extracted from xgps. The old backends,
|
||||
|
|
10
README
10
README
|
@ -1,23 +1,23 @@
|
|||
1 README
|
||||
********
|
||||
|
||||
This is version 0.29.0 of the GNUstep GUI Backend ('gnustep-back').
|
||||
This is version 0.32.0 of the GNUstep GUI Backend (‘gnustep-back’).
|
||||
|
||||
Here is some introductory info to get you started:
|
||||
|
||||
1.1 Initial reading
|
||||
===================
|
||||
|
||||
* The file 'ANNOUNCE' contains a very brief overview of the library.
|
||||
• The file ‘ANNOUNCE’ contains a very brief overview of the library.
|
||||
It also tells you where to get the most recent version.
|
||||
|
||||
* The file 'NEWS' has the library's feature history.
|
||||
• The file ‘NEWS’ has the library's feature history.
|
||||
|
||||
* The file 'INSTALL' gives instructions for installing the library.
|
||||
• The file ‘INSTALL’ gives instructions for installing the library.
|
||||
|
||||
1.2 How can you help?
|
||||
=====================
|
||||
|
||||
* Give us feedback! Tell us what you like; tell us what you think
|
||||
• Give us feedback! Tell us what you like; tell us what you think
|
||||
could be better. Send us bug reports at <bug-gnustep@gnu.org>.
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ endif
|
|||
#
|
||||
# The list of subproject directories
|
||||
#
|
||||
SUBPROJECTS = gsc $(BUILD_SERVER) $(BUILD_GRAPHICS)
|
||||
SUBPROJECTS = $(sort gsc $(BUILD_SERVER) $(BUILD_GRAPHICS))
|
||||
|
||||
libgnustep-$(BACKEND_FULL)_SUBPROJECTS=$(SUBPROJECTS)
|
||||
|
||||
|
|
|
@ -50,6 +50,11 @@
|
|||
@interface WaylandServer (Initialize)
|
||||
+ (void) initializeBackend;
|
||||
@end
|
||||
#elif BUILD_SERVER == SERVER_headless
|
||||
#include <headless/HeadlessServer.h>
|
||||
@interface HeadlessServer (Initialize)
|
||||
+ (void) initializeBackend;
|
||||
@end
|
||||
#endif
|
||||
|
||||
/* Call the correct initalization routines for the choosen
|
||||
|
@ -70,6 +75,8 @@
|
|||
[WIN32Server initializeBackend];
|
||||
#elif BUILD_SERVER == SERVER_wayland
|
||||
[WaylandServer initializeBackend];
|
||||
#elif BUILD_SERVER == SERVER_headless
|
||||
[HeadlessServer initializeBackend];
|
||||
#else
|
||||
[NSException raise: NSInternalInconsistencyException
|
||||
format: @"No Window Server configured in backend"];
|
||||
|
@ -96,6 +103,8 @@
|
|||
context = @"CairoContext";
|
||||
#elif (BUILD_GRAPHICS==GRAPHICS_opal)
|
||||
context = @"OpalContext";
|
||||
#elif (BUILD_GRAPHICS==GRAPHICS_headless)
|
||||
context = @"HeadlessContext";
|
||||
#else
|
||||
#error INVALID build graphics type
|
||||
#endif
|
||||
|
|
|
@ -105,6 +105,16 @@
|
|||
return YES;
|
||||
}
|
||||
|
||||
- (id) initWithContextInfo: (NSDictionary *)info
|
||||
{
|
||||
self = [super initWithContextInfo: info];
|
||||
if (self)
|
||||
{
|
||||
[self setImageInterpolation: NSImageInterpolationDefault];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (BOOL) isDrawingToScreen
|
||||
{
|
||||
CairoSurface *surface = nil;
|
||||
|
|
|
@ -163,11 +163,20 @@ static NSArray *faFromFc(FcPattern *pat)
|
|||
float nsweight;
|
||||
unsigned int nstraits = 0;
|
||||
char *fcfamily, *fcstyle;
|
||||
NSMutableString *name, *family, *style;
|
||||
NSString *styleStr = nil;
|
||||
NSString *name = nil;
|
||||
NSMutableString *family, *style;
|
||||
#ifdef FC_POSTSCRIPT_NAME
|
||||
char *fcname;
|
||||
#endif
|
||||
|
||||
if (FcPatternGetString(pat, FC_STYLE, 0, (FcChar8 **)&fcstyle) == FcResultMatch)
|
||||
{
|
||||
styleStr = [NSString stringWithUTF8String: fcstyle];
|
||||
}
|
||||
|
||||
// NSLog (@"family: %@, style: %s/%@", name, fcstyle, style);
|
||||
|
||||
if (FcPatternGetInteger(pat, FC_WEIGHT, 0, &weight) != FcResultMatch
|
||||
|| FcPatternGetInteger(pat, FC_SLANT, 0, &slant) != FcResultMatch
|
||||
|| FcPatternGetString(pat, FC_FAMILY, 0, (FcChar8 **)&fcfamily)
|
||||
|
@ -178,12 +187,6 @@ static NSArray *faFromFc(FcPattern *pat)
|
|||
if (spacing==FC_MONO || spacing==FC_CHARCELL)
|
||||
nstraits |= NSFixedPitchFontMask;
|
||||
|
||||
name = [NSMutableString stringWithCapacity: 100];
|
||||
#ifdef FC_POSTSCRIPT_NAME
|
||||
if (FcPatternGetString(pat, FC_POSTSCRIPT_NAME, 0, (FcChar8 **)&fcname) == FcResultMatch)
|
||||
[name appendString: [NSMutableString stringWithUTF8String: fcname]];
|
||||
#endif
|
||||
|
||||
family = [NSMutableString stringWithUTF8String: fcfamily];
|
||||
style = [NSMutableString stringWithCapacity: 100];
|
||||
|
||||
|
@ -303,28 +306,40 @@ static NSArray *faFromFc(FcPattern *pat)
|
|||
break;
|
||||
}
|
||||
|
||||
if (![name length]) // no psname
|
||||
if (styleStr == nil)
|
||||
{
|
||||
NSDebugLLog(@"NSFont", @"Warning: synthesizing PSName for '%@ %@'", family, style);
|
||||
[name appendString: family];
|
||||
if ([style length] > 0)
|
||||
styleStr = (NSString *)style;
|
||||
}
|
||||
|
||||
if (![styleStr length])
|
||||
{
|
||||
styleStr = @"Regular";
|
||||
}
|
||||
|
||||
#ifdef FC_POSTSCRIPT_NAME
|
||||
if (FcPatternGetString(pat, FC_POSTSCRIPT_NAME, 0, (FcChar8 **)&fcname) == FcResultMatch)
|
||||
{
|
||||
name = [NSString stringWithUTF8String: fcname];
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!name || ![name length]) // no psname
|
||||
{
|
||||
NSMutableString *tmpStr;
|
||||
|
||||
tmpStr = [NSMutableString stringWithCapacity: 100];
|
||||
NSDebugLLog(@"NSFont", @"Warning: synthesizing PSName for '%@ %@'", family, styleStr);
|
||||
[tmpStr appendString: family];
|
||||
if ([styleStr length] > 0 && ![styleStr isEqualToString: @"Regular"])
|
||||
{
|
||||
[name appendString: @"-"];
|
||||
[name appendString: style];
|
||||
}
|
||||
[tmpStr appendString: @"-"];
|
||||
[tmpStr appendString: styleStr];
|
||||
}
|
||||
name = [NSString stringWithString: tmpStr];
|
||||
}
|
||||
|
||||
if (![style length])
|
||||
{
|
||||
[style setString: @"Regular"];
|
||||
}
|
||||
|
||||
if (FcPatternGetString(pat, FC_STYLE, 0, (FcChar8 **)&fcstyle) == FcResultMatch)
|
||||
style = [NSString stringWithUTF8String: fcstyle];
|
||||
|
||||
// NSLog (@"family: %@, style: %s/%@", name, fcstyle, style);
|
||||
return [NSArray arrayWithObjects: name,
|
||||
style,
|
||||
styleStr,
|
||||
[NSNumber numberWithFloat: nsweight],
|
||||
[NSNumber numberWithUnsignedInt: nstraits],
|
||||
nil];
|
||||
|
|
48
Source/headless/GNUmakefile
Normal file
48
Source/headless/GNUmakefile
Normal file
|
@ -0,0 +1,48 @@
|
|||
#
|
||||
# Main makefile for GNUstep Headless Backend
|
||||
#
|
||||
# Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
#
|
||||
# Author: Adam Fedor <fedor@gnu.org>
|
||||
#
|
||||
# This file is part of the GNUstep Backend.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; see the file COPYING.LIB.
|
||||
# If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
|
||||
PACKAGE_NAME = gnustep-back
|
||||
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../../back.make
|
||||
|
||||
include $(GNUSTEP_MAKEFILES)/common.make
|
||||
|
||||
include ../../config.make
|
||||
|
||||
# The library to be compiled, as a library or as a bundle
|
||||
SUBPROJECT_NAME=headless
|
||||
|
||||
# The Objective-C source files to be compiled
|
||||
headless_OBJC_FILES = \
|
||||
HeadlessContext.m \
|
||||
HeadlessServer.m \
|
||||
HeadlessFontInfo.m \
|
||||
HeadlessFontEnumerator.m \
|
||||
HeadlessFaceInfo.m \
|
||||
HeadlessGState.m
|
||||
|
||||
-include GNUmakefile.preamble
|
||||
|
||||
include $(GNUSTEP_MAKEFILES)/subproject.make
|
||||
|
||||
-include GNUmakefile.postamble
|
51
Source/headless/GNUmakefile.preamble
Normal file
51
Source/headless/GNUmakefile.preamble
Normal file
|
@ -0,0 +1,51 @@
|
|||
#
|
||||
# GNUmakefile.preamble
|
||||
#
|
||||
# Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
#
|
||||
# Author: Adam Fedor <fedor@gnu.org>
|
||||
#
|
||||
# This file is part of the GNUstep Backend.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; see the file COPYING.LIB.
|
||||
# If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA 02110-1301, USA.
|
||||
|
||||
#
|
||||
# Flags dealing with compiling and linking
|
||||
#
|
||||
|
||||
# Additional flags to pass to the preprocessor
|
||||
ADDITIONAL_CPPFLAGS += -Wall $(CONFIG_SYSTEM_DEFS)
|
||||
|
||||
# Additional flags to pass to the Objective-C compiler
|
||||
ADDITIONAL_OBJCFLAGS =
|
||||
|
||||
# Additional flags to pass to the C compiler
|
||||
ADDITIONAL_CFLAGS =
|
||||
|
||||
# Additional include directories the compiler should search
|
||||
ADDITIONAL_INCLUDE_DIRS += -I../../Headers \
|
||||
-I../$(GNUSTEP_TARGET_DIR) $(GRAPHIC_CFLAGS)
|
||||
|
||||
# Additional LDFLAGS to pass to the linker
|
||||
ADDITIONAL_LDFLAGS =
|
||||
|
||||
# Additional library directories the linker should search
|
||||
ADDITIONAL_LIB_DIRS =
|
||||
|
||||
#
|
||||
# Flags dealing with installing and uninstalling
|
||||
#
|
45
Source/headless/HeadlessContext.m
Normal file
45
Source/headless/HeadlessContext.m
Normal file
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
HeadlessContext.m
|
||||
|
||||
Copyright (C) 2003, 2023 Free Software Foundation, Inc.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "headless/HeadlessContext.h"
|
||||
#include "headless/HeadlessFontInfo.h"
|
||||
#include "headless/HeadlessFontEnumerator.h"
|
||||
#include "headless/HeadlessGState.h"
|
||||
|
||||
@implementation HeadlessContext
|
||||
|
||||
+ (void) initializeBackend
|
||||
{
|
||||
[NSGraphicsContext setDefaultContextClass: self];
|
||||
|
||||
[GSFontEnumerator setDefaultClass: [HeadlessFontEnumerator class]];
|
||||
[GSFontInfo setDefaultClass: [HeadlessFontInfo class]];
|
||||
}
|
||||
|
||||
+ (Class) GStateClass
|
||||
{
|
||||
return [HeadlessGState class];
|
||||
}
|
||||
|
||||
@end
|
44
Source/headless/HeadlessFaceInfo.m
Normal file
44
Source/headless/HeadlessFaceInfo.m
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
HeadlessFaceInfo.m
|
||||
|
||||
Copyright (C) 2003, 2023 Free Software Foundation, Inc.
|
||||
|
||||
Based on work by: Marcian Lytwyn <gnustep@advcsi.com> for Keysight
|
||||
Based on work by: Banlu Kemiyatorn <object at gmail dot com>
|
||||
Based on work by: Alex Malmberg
|
||||
Based on work by: Fred Kiefer <fredkiefer@gmx.de>
|
||||
|
||||
This file is part of GNUstep.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "headless/HeadlessFaceInfo.h"
|
||||
|
||||
@implementation HeadlessFaceInfo
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void *)fontFace
|
||||
{
|
||||
return _fontFace;
|
||||
}
|
||||
|
||||
@end
|
47
Source/headless/HeadlessFontEnumerator.m
Normal file
47
Source/headless/HeadlessFontEnumerator.m
Normal file
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
HeadlessFontEnumerator.m
|
||||
|
||||
Copyright (C) 2003, 2023 Free Software Foundation, Inc.
|
||||
|
||||
Based on work by: Marcian Lytwyn <gnustep@advcsi.com> for Keysight
|
||||
Based on work by: Banlu Kemiyatorn <object at gmail dot com>
|
||||
Based on work by: Alex Malmberg
|
||||
Based on work by: Fred Kiefer <fredkiefer@gmx.de>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "headless/HeadlessFontEnumerator.h"
|
||||
#include "headless/HeadlessFontInfo.h"
|
||||
|
||||
@implementation HeadlessFontEnumerator
|
||||
|
||||
+ (Class) faceInfoClass
|
||||
{
|
||||
return [HeadlessFaceInfo class];
|
||||
}
|
||||
|
||||
+ (HeadlessFaceInfo *) fontWithName: (NSString *) name
|
||||
{
|
||||
return (HeadlessFaceInfo *) [super fontWithName: name];
|
||||
}
|
||||
|
||||
- (void)enumerateFontsAndFamilies
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
87
Source/headless/HeadlessFontInfo.m
Normal file
87
Source/headless/HeadlessFontInfo.m
Normal file
|
@ -0,0 +1,87 @@
|
|||
/*
|
||||
HeadlessFontInfo.m
|
||||
|
||||
Copyright (C) 2003, 2023 Free Software Foundation, Inc.
|
||||
|
||||
Based on work by: Marcian Lytwyn <gnustep@advcsi.com> for Keysight
|
||||
Based on work by: Banlu Kemiyatorn <object at gmail dot com>
|
||||
Based on work by: Alex Malmberg
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "GNUstepBase/Unicode.h"
|
||||
#include <AppKit/NSAffineTransform.h>
|
||||
#include <AppKit/NSBezierPath.h>
|
||||
#include "headless/HeadlessFontInfo.h"
|
||||
#include "headless/HeadlessFontEnumerator.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
@implementation HeadlessFontInfo
|
||||
|
||||
- (id) initWithFontName: (NSString *)name
|
||||
matrix: (const CGFloat *)fmatrix
|
||||
screenFont: (BOOL)p_screenFont
|
||||
{
|
||||
self = [super init];
|
||||
if (!self)
|
||||
return nil;
|
||||
|
||||
#ifndef _MSC_VER
|
||||
// Accessing instance variables across module boundaries is not supported by the Visual Studio
|
||||
// toolchain; this could be implemented using e.g. setFontName: and setMatrix: method on the
|
||||
// base case.
|
||||
fontName = [name copy];
|
||||
memcpy(matrix, fmatrix, sizeof(matrix));
|
||||
#endif
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (BOOL) glyphIsEncoded: (NSGlyph)glyph
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSSize) advancementForGlyph: (NSGlyph)glyph
|
||||
{
|
||||
return NSZeroSize;
|
||||
}
|
||||
|
||||
- (NSRect) boundingRectForGlyph: (NSGlyph)glyph
|
||||
{
|
||||
return NSZeroRect;
|
||||
}
|
||||
|
||||
- (CGFloat) widthOfString: (NSString *)string
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
- (void) appendBezierPathWithGlyphs: (NSGlyph *)glyphs
|
||||
count: (int)length
|
||||
toBezierPath: (NSBezierPath *)path
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
72
Source/headless/HeadlessGState.m
Normal file
72
Source/headless/HeadlessGState.m
Normal file
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
HeadlessGState.m
|
||||
|
||||
Copyright (C) 2003, 2023 Free Software Foundation, Inc.
|
||||
|
||||
Based on work by: Marcian Lytwyn <gnustep@advcsi.com> for Keysight
|
||||
Based on work by: Banlu Kemiyatorn <object at gmail dot com>
|
||||
Based on work by: Fred Kiefer <fredkiefer@gmx.de>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "headless/HeadlessGState.h"
|
||||
|
||||
@implementation HeadlessGState
|
||||
|
||||
- (void) DPSclip
|
||||
{
|
||||
}
|
||||
|
||||
- (void) DPSfill
|
||||
{
|
||||
}
|
||||
|
||||
- (void) DPSsetlinewidth: (CGFloat)width
|
||||
{
|
||||
}
|
||||
|
||||
- (void) DPSsetdash: (const CGFloat *)pat : (NSInteger)size : (CGFloat)foffset
|
||||
{
|
||||
}
|
||||
|
||||
- (void) DPSimage: (NSAffineTransform *)matrix : (NSInteger)pixelsWide
|
||||
: (NSInteger)pixelsHigh : (NSInteger)bitsPerSample
|
||||
: (NSInteger)samplesPerPixel : (NSInteger)bitsPerPixel
|
||||
: (NSInteger)bytesPerRow : (BOOL)isPlanar
|
||||
: (BOOL)hasAlpha : (NSString *)colorSpaceName
|
||||
: (const unsigned char *const[5])data
|
||||
{
|
||||
}
|
||||
|
||||
- (void) DPSstroke
|
||||
{
|
||||
}
|
||||
|
||||
- (void) compositerect: (NSRect)aRect op: (NSCompositingOperation)op
|
||||
{
|
||||
}
|
||||
|
||||
- (void) compositeGState: (HeadlessGState *)source
|
||||
fromRect: (NSRect)srcRect
|
||||
toPoint: (NSPoint)destPoint
|
||||
op: (NSCompositingOperation)op
|
||||
fraction: (CGFloat)delta
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
115
Source/headless/HeadlessServer.m
Normal file
115
Source/headless/HeadlessServer.m
Normal file
|
@ -0,0 +1,115 @@
|
|||
/*
|
||||
HeadlessServer.m
|
||||
|
||||
Copyright (C) 1998,2002,2023 Free Software Foundation, Inc.
|
||||
|
||||
Based on work by: Marcian Lytwyn <gnustep@advcsi.com> for Keysight
|
||||
Based on work by: Adam Fedor <fedor@gnu.org>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, see <http://www.gnu.org/licenses/> or write to the
|
||||
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <AppKit/NSApplication.h>
|
||||
#include <Foundation/NSDebug.h>
|
||||
#include <Foundation/NSValue.h>
|
||||
|
||||
#include "headless/HeadlessServer.h"
|
||||
|
||||
/* Terminate cleanly if we get a signal to do so */
|
||||
static void
|
||||
terminate(int sig)
|
||||
{
|
||||
if (nil != NSApp)
|
||||
{
|
||||
[NSApp terminate: NSApp];
|
||||
}
|
||||
else
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
@implementation HeadlessServer
|
||||
|
||||
/* Initialize AppKit backend */
|
||||
+ (void) initializeBackend
|
||||
{
|
||||
NSDebugLog(@"Initializing GNUstep headless backend.\n");
|
||||
[GSDisplayServer setDefaultServerClass: [HeadlessServer class]];
|
||||
signal(SIGTERM, terminate);
|
||||
signal(SIGINT, terminate);
|
||||
}
|
||||
|
||||
- (NSArray *)screenList
|
||||
{
|
||||
NSDebugLog(@"GNUstep headless - fetching screen list");
|
||||
NSMutableArray *screens = [NSMutableArray arrayWithCapacity: 1];
|
||||
[screens addObject: [NSNumber numberWithInt: 1]];
|
||||
|
||||
return screens;
|
||||
}
|
||||
|
||||
- (NSRect) boundsForScreen: (int)screen
|
||||
{
|
||||
return NSMakeRect(0, 0, 400, 400);
|
||||
}
|
||||
|
||||
- (NSWindowDepth) windowDepthForScreen: (int) screen_num
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
- (void) styleoffsets: (float *) l : (float *) r : (float *) t : (float *) b
|
||||
: (unsigned int) style
|
||||
{
|
||||
}
|
||||
|
||||
- (void) standardcursor: (int)style : (void **)cid
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
- (int) window: (NSRect)frame
|
||||
: (NSBackingStoreType)type
|
||||
: (unsigned int)style
|
||||
: (int)screen
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
- (void) setwindowlevel: (int)level : (int)win
|
||||
{
|
||||
}
|
||||
|
||||
- (void) setWindowdevice: (int)win forContext: (NSGraphicsContext *)ctxt
|
||||
{
|
||||
}
|
||||
|
||||
- (void) orderwindow: (int)op : (int)otherWin : (int)winNum
|
||||
{
|
||||
}
|
||||
|
||||
- (void) setinputfocus: (int)win
|
||||
{
|
||||
}
|
||||
|
||||
- (void) imagecursor: (NSPoint)hotp : (NSImage *)image : (void **)cid
|
||||
{
|
||||
}
|
||||
@end
|
|
@ -38,6 +38,8 @@
|
|||
#include <linux/input.h>
|
||||
#include "wayland-cursor.h"
|
||||
|
||||
extern void wl_cursor_destroy(struct wl_cursor *cursor);
|
||||
|
||||
// XXX should this be configurable by the user?
|
||||
#define DOUBLECLICK_DELAY 300
|
||||
#define DOUBLECLICK_MOVE_THREASHOLD 3
|
||||
|
@ -852,4 +854,4 @@ WaylandServer (Cursor)
|
|||
wlconfig->mouse_scroll_multiplier = 1.0f;
|
||||
}
|
||||
}
|
||||
@end
|
||||
@end
|
|
@ -31,6 +31,7 @@
|
|||
#include <linux/input.h>
|
||||
#include <AppKit/NSText.h>
|
||||
#include <sys/mman.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static void
|
||||
keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
|
||||
|
|
|
@ -28,10 +28,11 @@
|
|||
#include "wayland/WaylandServer.h"
|
||||
#include <AppKit/NSEvent.h>
|
||||
#include <AppKit/NSApplication.h>
|
||||
#include <AppKit/NSGraphics.h>
|
||||
|
||||
static void
|
||||
xdg_surface_on_configure(void *data, struct xdg_surface *xdg_surface,
|
||||
uint32_t serial)
|
||||
uint32_t serial)
|
||||
{
|
||||
struct window *window = data;
|
||||
|
||||
|
@ -43,7 +44,6 @@ xdg_surface_on_configure(void *data, struct xdg_surface *xdg_surface,
|
|||
free(window);
|
||||
return;
|
||||
}
|
||||
WaylandConfig *wlconfig = window->wlconfig;
|
||||
|
||||
NSEvent *ev = nil;
|
||||
NSWindow *nswindow = GSWindowWithNumber(window->window_id);
|
||||
|
@ -57,22 +57,22 @@ xdg_surface_on_configure(void *data, struct xdg_surface *xdg_surface,
|
|||
if (window->buffer_needs_attach)
|
||||
{
|
||||
[window->instance flushwindowrect:NSMakeRect(window->pos_x, window->pos_y,
|
||||
window->width, window->height
|
||||
):window->window_id];
|
||||
window->width, window->height)
|
||||
:window->window_id];
|
||||
}
|
||||
|
||||
if (wlconfig->pointer.focus
|
||||
&& wlconfig->pointer.focus->window_id == window->window_id)
|
||||
if (window->wlconfig->pointer.focus
|
||||
&& window->wlconfig->pointer.focus->window_id == window->window_id)
|
||||
{
|
||||
ev = [NSEvent otherEventWithType:NSAppKitDefined
|
||||
location:NSZeroPoint
|
||||
modifierFlags:0
|
||||
timestamp:0
|
||||
windowNumber:(int) window->window_id
|
||||
context:GSCurrentContext()
|
||||
subtype:GSAppKitWindowFocusIn
|
||||
data1:0
|
||||
data2:0];
|
||||
location:NSZeroPoint
|
||||
modifierFlags:0
|
||||
timestamp:0
|
||||
windowNumber:(int) window->window_id
|
||||
context:GSCurrentContext()
|
||||
subtype:GSAppKitWindowFocusIn
|
||||
data1:0
|
||||
data2:0];
|
||||
|
||||
[nswindow sendEvent:ev];
|
||||
}
|
||||
|
@ -80,15 +80,14 @@ xdg_surface_on_configure(void *data, struct xdg_surface *xdg_surface,
|
|||
|
||||
static void
|
||||
xdg_toplevel_configure(void *data, struct xdg_toplevel *xdg_toplevel,
|
||||
int32_t width, int32_t height, struct wl_array *states)
|
||||
int32_t width, int32_t height, struct wl_array *states)
|
||||
{
|
||||
struct window *window = data;
|
||||
WaylandConfig *wlconfig = window->wlconfig;
|
||||
|
||||
NSDebugLog(@"[%d] xdg_toplevel_configure %ldx%ld", window->window_id, width,
|
||||
height);
|
||||
NSDebugLog(@"[%d] xdg_toplevel_configure %dx%d", window->window_id, width,
|
||||
height);
|
||||
|
||||
// the compositor can send 0.0x0.0
|
||||
// The compositor can send 0x0
|
||||
if (width == 0 || height == 0)
|
||||
{
|
||||
return;
|
||||
|
@ -99,45 +98,43 @@ xdg_toplevel_configure(void *data, struct xdg_toplevel *xdg_toplevel,
|
|||
window->height = height;
|
||||
|
||||
xdg_surface_set_window_geometry(window->xdg_surface, 0, 0, window->width,
|
||||
window->height);
|
||||
window->height);
|
||||
|
||||
NSEvent *ev = [NSEvent otherEventWithType:NSAppKitDefined
|
||||
location:NSMakePoint(0.0, 0.0)
|
||||
modifierFlags:0
|
||||
timestamp:0
|
||||
windowNumber:window->window_id
|
||||
context:GSCurrentContext()
|
||||
subtype:GSAppKitWindowResized
|
||||
data1:window->width
|
||||
data2:window->height];
|
||||
location:NSMakePoint(0.0, 0.0)
|
||||
modifierFlags:0
|
||||
timestamp:0
|
||||
windowNumber:window->window_id
|
||||
context:GSCurrentContext()
|
||||
subtype:GSAppKitWindowResized
|
||||
data1:window->width
|
||||
data2:window->height];
|
||||
[(GSWindowWithNumber(window->window_id)) sendEvent:ev];
|
||||
}
|
||||
NSDebugLog(@"[%d] notify resize from backend=%ldx%ld", window->window_id,
|
||||
width, height);
|
||||
NSDebugLog(@"[%d] notify resize from backend=%dx%d", window->window_id,
|
||||
width, height);
|
||||
}
|
||||
|
||||
static void
|
||||
xdg_toplevel_close_handler(void *data, struct zxdg_toplevel_v6 *xdg_toplevel)
|
||||
xdg_toplevel_close_handler(void *data, struct xdg_toplevel *xdg_toplevel)
|
||||
{
|
||||
NSDebugLog(@"xdg_toplevel_close_handler");
|
||||
}
|
||||
|
||||
static void
|
||||
xdg_popup_configure(void *data, struct xdg_popup *xdg_popup, int32_t x,
|
||||
int32_t y, int32_t width, int32_t height)
|
||||
int32_t y, int32_t width, int32_t height)
|
||||
{
|
||||
struct window *window = data;
|
||||
WaylandConfig *wlconfig = window->wlconfig;
|
||||
|
||||
NSDebugLog(@"[%d] xdg_popup_configure [%d,%d %dx%d]", window->window_id, x, y,
|
||||
width, height);
|
||||
width, height);
|
||||
}
|
||||
|
||||
static void
|
||||
xdg_popup_done(void *data, struct xdg_popup *xdg_popup)
|
||||
{
|
||||
struct window *window = data;
|
||||
WaylandConfig *wlconfig = window->wlconfig;
|
||||
window->terminated = YES;
|
||||
xdg_popup_destroy(xdg_popup);
|
||||
wl_surface_destroy(window->surface);
|
||||
|
@ -145,7 +142,7 @@ xdg_popup_done(void *data, struct xdg_popup *xdg_popup)
|
|||
|
||||
static void
|
||||
wm_base_handle_ping(void *data, struct xdg_wm_base *xdg_wm_base,
|
||||
uint32_t serial)
|
||||
uint32_t serial)
|
||||
{
|
||||
NSDebugLog(@"wm_base_handle_ping");
|
||||
xdg_wm_base_pong(xdg_wm_base, serial);
|
||||
|
@ -167,4 +164,4 @@ const struct xdg_popup_listener xdg_popup_listener = {
|
|||
const struct xdg_toplevel_listener xdg_toplevel_listener = {
|
||||
.configure = xdg_toplevel_configure,
|
||||
.close = xdg_toplevel_close_handler,
|
||||
};
|
||||
};
|
|
@ -781,7 +781,7 @@ WaylandServer (SurfaceRoles)
|
|||
break;
|
||||
case NSPopUpMenuWindowLevel:
|
||||
NSDebugLog(@"[%d] NSPopUpMenuWindowLevel", win);
|
||||
[self createPopup:win];
|
||||
[self createPopup:window];
|
||||
break;
|
||||
case NSScreenSaverWindowLevel:
|
||||
NSDebugLog(@"[%d] NSScreenSaverWindowLevel", win);
|
||||
|
@ -1099,4 +1099,4 @@ WaylandServer (SurfaceRoles)
|
|||
wl_display_flush(window->wlconfig->display);
|
||||
}
|
||||
|
||||
@end
|
||||
@end
|
|
@ -63,6 +63,18 @@
|
|||
|
||||
#include <math.h>
|
||||
|
||||
// The Windows SDK declares BOOL as an int. Objective C defines BOOl as a char.
|
||||
// Those two types clash. MinGW's implementation of the Windows SDK uses the WINBOOL
|
||||
// type to avoid this clash. When compiling natively on Windows, we need to manually
|
||||
// define WINBOOL.
|
||||
// MinGW will define _DEF_WINBOOL_ if it has defined WINBOOL so we can use the same trick
|
||||
// here.
|
||||
// See https://github.com/mingw-w64/mingw-w64/blob/master/mingw-w64-headers/include/ntdef.h#L355
|
||||
#ifndef _DEF_WINBOOL_
|
||||
#define _DEF_WINBOOL_
|
||||
typedef int WINBOOL;
|
||||
#endif
|
||||
|
||||
// To update the cursor..
|
||||
static BOOL update_cursor = NO;
|
||||
static BOOL should_handle_cursor = NO;
|
||||
|
|
|
@ -33,6 +33,18 @@
|
|||
#include "win32/WIN32Server.h"
|
||||
#include "win32/WIN32Geometry.h"
|
||||
|
||||
// The Windows SDK declares BOOL as an int. Objective C defines BOOl as a char.
|
||||
// Those two types clash. MinGW's implementation of the Windows SDK uses the WINBOOL
|
||||
// type to avoid this clash. When compiling natively on Windows, we need to manually
|
||||
// define WINBOOL.
|
||||
// MinGW will define _DEF_WINBOOL_ if it has defined WINBOOL so we can use the same trick
|
||||
// here.
|
||||
// See https://github.com/mingw-w64/mingw-w64/blob/master/mingw-w64-headers/include/ntdef.h#L355
|
||||
#ifndef _DEF_WINBOOL_
|
||||
#define _DEF_WINBOOL_
|
||||
typedef int WINBOOL;
|
||||
#endif
|
||||
|
||||
static void
|
||||
invalidateWindow(WIN32Server *svr, HWND hwnd, RECT rect)
|
||||
{
|
||||
|
|
|
@ -453,9 +453,14 @@ NSLog(@"No glyph for U%d", c);
|
|||
logfont.lfItalic = 1;
|
||||
|
||||
logfont.lfQuality = DEFAULT_QUALITY;
|
||||
wcsncpy(logfont.lfFaceName,
|
||||
(const unichar*)[familyName cStringUsingEncoding: NSUnicodeStringEncoding],
|
||||
LF_FACESIZE);
|
||||
|
||||
if (familyName)
|
||||
{
|
||||
wcsncpy(logfont.lfFaceName,
|
||||
(const unichar*)[familyName cStringUsingEncoding: NSUnicodeStringEncoding],
|
||||
LF_FACESIZE);
|
||||
}
|
||||
|
||||
hFont = CreateFontIndirectW(&logfont);
|
||||
if (!hFont)
|
||||
{
|
||||
|
|
|
@ -803,6 +803,7 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
|||
XEvent xEvent;
|
||||
unsigned long *extents;
|
||||
Offsets *o = generic.offsets + (style & 15);
|
||||
int windowIdent;
|
||||
int repp = 0;
|
||||
int repx = 0;
|
||||
int repy = 0;
|
||||
|
@ -1131,6 +1132,11 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
|||
}
|
||||
}
|
||||
|
||||
/* Calling termwindow should cause the window to be destroyed,
|
||||
* so we need to take a copy of the window identifier to check
|
||||
* for events left in the queue about that window.
|
||||
*/
|
||||
windowIdent = window->ident;
|
||||
[self termwindow: window->number];
|
||||
XSync(dpy, False);
|
||||
while (XPending(dpy) > 0)
|
||||
|
@ -1138,7 +1144,7 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
|||
XNextEvent(dpy, &xEvent);
|
||||
NSDebugLLog(@"Offset", @"Destroying ... event %d window %lu\n",
|
||||
xEvent.type, xEvent.xany.window);
|
||||
if (xEvent.xany.window != window->ident)
|
||||
if (xEvent.xany.window != windowIdent)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -151,12 +151,18 @@
|
|||
{
|
||||
/* Always returns a Latin-1 string according to the manpage */
|
||||
count = XLookupString (event, buf, BUF_LEN, &keysym, NULL);
|
||||
if (count)
|
||||
if (count == 1)
|
||||
{
|
||||
keys = [[[NSString alloc] initWithBytes: buf
|
||||
length: count
|
||||
encoding: NSISOLatin1StringEncoding] autorelease];
|
||||
}
|
||||
else if (count > 1) // manpage lies and we suppose UTF-8
|
||||
{
|
||||
keys = [[[NSString alloc] initWithBytes: buf
|
||||
length: count
|
||||
encoding: NSUTF8StringEncoding] autorelease];
|
||||
}
|
||||
|
||||
if (keysymptr)
|
||||
*keysymptr = keysym;
|
||||
|
|
15
Tools/gpbs.m
15
Tools/gpbs.m
|
@ -38,7 +38,12 @@
|
|||
#endif
|
||||
|
||||
#include <signal.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#else
|
||||
#include <io.h>
|
||||
#define strcasecmp _stricmp
|
||||
#endif
|
||||
#include <ctype.h>
|
||||
|
||||
#ifdef __MINGW__
|
||||
|
@ -229,7 +234,8 @@ NSMutableDictionary *pasteboards = nil;
|
|||
{
|
||||
if (verbose)
|
||||
{
|
||||
NSLog(@"-data for %@", self);
|
||||
NSLog(@"-data (%llu bytes) provided for %@",
|
||||
(unsigned long long)[data length], self);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
@ -285,7 +291,8 @@ NSMutableDictionary *pasteboards = nil;
|
|||
ASSIGN(data, d);
|
||||
if (verbose)
|
||||
{
|
||||
NSLog(@"-setData: for %@", self);
|
||||
NSLog(@"-setData: (%llu bytes) for %@",
|
||||
(unsigned long long)[data length], self);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -863,8 +870,8 @@ NSMutableDictionary *pasteboards = nil;
|
|||
e = [self entryByCount: count];
|
||||
if (verbose)
|
||||
{
|
||||
NSLog(@"%@ set data %p for type '%@' version %d in %@",
|
||||
self, data, type, count, e);
|
||||
NSLog(@"%@ set data %p (%llu bytes) for type '%@' version %d in %@",
|
||||
self, data, (unsigned long long)[data length], type, count, e);
|
||||
}
|
||||
if (e)
|
||||
{
|
||||
|
|
|
@ -40,6 +40,18 @@
|
|||
#include <sys/file.h>
|
||||
#endif
|
||||
|
||||
// The Windows SDK declares BOOL as an int. Objective C defines BOOl as a char.
|
||||
// Those two types clash. MinGW's implementation of the Windows SDK uses the WINBOOL
|
||||
// type to avoid this clash. When compiling natively on Windows, we need to manually
|
||||
// define WINBOOL.
|
||||
// MinGW will define _DEF_WINBOOL_ if it has defined WINBOOL so we can use the same trick
|
||||
// here.
|
||||
// See https://github.com/mingw-w64/mingw-w64/blob/master/mingw-w64-headers/include/ntdef.h#L355
|
||||
#ifndef _DEF_WINBOOL_
|
||||
#define _DEF_WINBOOL_
|
||||
typedef int WINBOOL;
|
||||
#endif
|
||||
|
||||
@interface Win32PbOwner : NSObject
|
||||
{
|
||||
NSPasteboard *_pb;
|
||||
|
|
1074
Tools/xpbs.m
1074
Tools/xpbs.m
File diff suppressed because it is too large
Load diff
6
Version
6
Version
|
@ -3,12 +3,12 @@
|
|||
|
||||
# The version number of this release.
|
||||
GNUSTEP_BACK_MAJOR_VERSION=0
|
||||
GNUSTEP_BACK_MINOR_VERSION=30
|
||||
GNUSTEP_BACK_MINOR_VERSION=32
|
||||
GNUSTEP_BACK_SUBMINOR_VERSION=0
|
||||
# This numeric value should match above
|
||||
VERSION_NUMBER=030.0
|
||||
VERSION_NUMBER=032.0
|
||||
# This numeric value should match the compatible gui interface version
|
||||
INTERFACE_VERSION_NUMBER=030
|
||||
INTERFACE_VERSION_NUMBER=032
|
||||
|
||||
GNUSTEP_BACK_VERSION=${GNUSTEP_BACK_MAJOR_VERSION}.${GNUSTEP_BACK_MINOR_VERSION}.${GNUSTEP_BACK_SUBMINOR_VERSION}
|
||||
VERSION=${GNUSTEP_BACK_VERSION}
|
||||
|
|
51
config.h.in
51
config.h.in
|
@ -1,15 +1,17 @@
|
|||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
|
||||
#define SERVER_x11 1
|
||||
#define SERVER_win32 2
|
||||
#define SERVER_wayland 3
|
||||
#define GRAPHICS_xdps 0
|
||||
#define GRAPHICS_art 1
|
||||
#define GRAPHICS_xlib 2
|
||||
#define GRAPHICS_winlib 3
|
||||
#define GRAPHICS_cairo 4
|
||||
#define GRAPHICS_opal 5
|
||||
#define SERVER_x11 1
|
||||
#define SERVER_win32 2
|
||||
#define SERVER_wayland 3
|
||||
#define SERVER_headless 4
|
||||
#define GRAPHICS_xdps 0
|
||||
#define GRAPHICS_art 1
|
||||
#define GRAPHICS_xlib 2
|
||||
#define GRAPHICS_winlib 3
|
||||
#define GRAPHICS_cairo 4
|
||||
#define GRAPHICS_opal 5
|
||||
#define GRAPHICS_headless 6
|
||||
|
||||
|
||||
/* Define to type of graphics context to build */
|
||||
|
@ -42,27 +44,33 @@
|
|||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `wayland-client' library (-lwayland-client). */
|
||||
#undef HAVE_LIBWAYLAND_CLIENT
|
||||
|
||||
/* Define to 1 if you have the `Xext' library (-lXext). */
|
||||
#undef HAVE_LIBXEXT
|
||||
|
||||
/* Define to 1 if you have the `Xft' library (-lXft). */
|
||||
#undef HAVE_LIBXFT
|
||||
|
||||
/* Define to 1 if you have the `xkbcommon' library (-lxkbcommon). */
|
||||
#undef HAVE_LIBXKBCOMMON
|
||||
|
||||
/* Define to 1 if you have the `Xmu' library (-lXmu). */
|
||||
#undef HAVE_LIBXMU
|
||||
|
||||
/* Define to 1 if you have the `Xt' library (-lXt). */
|
||||
#undef HAVE_LIBXT
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `shmctl' function. */
|
||||
#undef HAVE_SHMCTL
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdio.h> header file. */
|
||||
#undef HAVE_STDIO_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
|
@ -93,6 +101,9 @@
|
|||
/* Define if you have XftDrawStringUtf8 */
|
||||
#undef HAVE_UTF8
|
||||
|
||||
/* Define to 1 if you have the <wayland-util.h> header file. */
|
||||
#undef HAVE_WAYLAND_UTIL_H
|
||||
|
||||
/* Define if you have the wgl library */
|
||||
#undef HAVE_WGL
|
||||
|
||||
|
@ -102,6 +113,9 @@
|
|||
/* Define to 1 if you have the <X11/extensions/sync.h> header file. */
|
||||
#undef HAVE_X11_EXTENSIONS_SYNC_H
|
||||
|
||||
/* Define to 1 if you have the <X11/extensions/Xrandr.h> header file. */
|
||||
#undef HAVE_X11_EXTENSIONS_XRANDR_H
|
||||
|
||||
/* Define to 1 if you have the <X11/extensions/XShm.h> header file. */
|
||||
#undef HAVE_X11_EXTENSIONS_XSHM_H
|
||||
|
||||
|
@ -118,15 +132,18 @@
|
|||
/* Define to 1 if you have 'XInternAtoms' function. */
|
||||
#undef HAVE_XINTERNATOMS
|
||||
|
||||
/* Define to 1 if you have the <xkbcommon/xkbcommon.h> header file. */
|
||||
#undef HAVE_XKBCOMMON_XKBCOMMON_H
|
||||
|
||||
/* Define to enable Xrandr support */
|
||||
#undef HAVE_XRANDR
|
||||
|
||||
/* Define to enable Xshape support */
|
||||
#undef HAVE_XSHAPE
|
||||
|
||||
/* Define to 1 if you have the `Xutf8LookupString' function. */
|
||||
#undef HAVE_XUTF8LOOKUPSTRING
|
||||
|
||||
/* Define to enable Xrandr support */
|
||||
#undef HAVE_XRANDR
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
|
@ -145,7 +162,9 @@
|
|||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
/* Define to 1 if all of the C90 standard headers exist (not just the ones
|
||||
required in a freestanding environment). This macro is provided for
|
||||
backward compatibility; new code need not use it. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define to enable glitz support */
|
||||
|
|
28
configure.ac
28
configure.ac
|
@ -565,10 +565,10 @@ case $target_os in
|
|||
esac
|
||||
|
||||
AC_ARG_ENABLE(server,
|
||||
[ --enable-server=SRV Build server type: x11, win32, wayland],,
|
||||
[ --enable-server=SRV Build server type: x11, win32, wayland, headless],,
|
||||
enable_server=$BUILD_SERVER)
|
||||
AC_ARG_ENABLE(graphics,
|
||||
[ --enable-graphics=GPH Build graphics: xlib, xdps, winlib, art, cairo, opal],,
|
||||
[ --enable-graphics=GPH Build graphics: xlib, xdps, winlib, art, cairo, opal, headless],,
|
||||
enable_graphics="$BUILD_GRAPHICS")
|
||||
|
||||
BUILD_SERVER=$enable_server
|
||||
|
@ -658,8 +658,6 @@ if test x"$BUILD_GRAPHICS" = "xcairo"; then
|
|||
CAIRO_LIBS="$CAIRO_LIBS $XFT_LIBS"
|
||||
CAIRO_CFLAGS="$CAIRO_CFLAGS"
|
||||
LIBS="-lwayland-client -lwayland-cursor -lxkbcommon $LIBS"
|
||||
else
|
||||
AC_MSG_ERROR([Invalid Cairo installation])
|
||||
fi
|
||||
LIBS="$CAIRO_LIBS $LIBS"
|
||||
CPPFLAGS="$CAIRO_CFLAGS $CPPFLAGS"
|
||||
|
@ -717,6 +715,8 @@ elif test x"$BUILD_GRAPHICS" = "xopal"; then
|
|||
fi
|
||||
AC_MSG_NOTICE([Switching to $BUILD_GRAPHICS])
|
||||
fi
|
||||
elif test x"$BUILD_GRAPHICS" = "xheadless"; then
|
||||
: # Nothing to do
|
||||
else
|
||||
AC_MSG_ERROR([Invalid graphics backend $BUILD_GRAPHICS])
|
||||
fi
|
||||
|
@ -757,15 +757,17 @@ if test $BUILD_SERVER = win32; then
|
|||
fi
|
||||
|
||||
AH_TOP([
|
||||
#define SERVER_x11 1
|
||||
#define SERVER_win32 2
|
||||
#define SERVER_wayland 3
|
||||
#define GRAPHICS_xdps 0
|
||||
#define GRAPHICS_art 1
|
||||
#define GRAPHICS_xlib 2
|
||||
#define GRAPHICS_winlib 3
|
||||
#define GRAPHICS_cairo 4
|
||||
#define GRAPHICS_opal 5
|
||||
#define SERVER_x11 1
|
||||
#define SERVER_win32 2
|
||||
#define SERVER_wayland 3
|
||||
#define SERVER_headless 4
|
||||
#define GRAPHICS_xdps 0
|
||||
#define GRAPHICS_art 1
|
||||
#define GRAPHICS_xlib 2
|
||||
#define GRAPHICS_winlib 3
|
||||
#define GRAPHICS_cairo 4
|
||||
#define GRAPHICS_opal 5
|
||||
#define GRAPHICS_headless 6
|
||||
])
|
||||
AC_DEFINE_UNQUOTED(BUILD_SERVER,SERVER_$BUILD_SERVER,
|
||||
[Define to type of window server to build])
|
||||
|
|
Loading…
Reference in a new issue