(Ebook) Pro PHP GTK by Scott Mattocks ISBN
9781590596135, 1590596137 Pdf Download
https://ebooknice.com/product/pro-php-gtk-926588
★★★★★
4.7 out of 5.0 (79 reviews )
Instant PDF Download
ebooknice.com
(Ebook) Pro PHP GTK by Scott Mattocks ISBN 9781590596135,
1590596137 Pdf Download
EBOOK
Available Formats
■ PDF eBook Study Guide Ebook
EXCLUSIVE 2025 EDUCATIONAL COLLECTION - LIMITED TIME
INSTANT DOWNLOAD VIEW LIBRARY
Here are some recommended products that we believe you will be
interested in. You can click the link to download.
(Ebook) Pro PHP and jQuery by Jason Lengstorf ISBN 1430228474
https://ebooknice.com/product/pro-php-and-jquery-2090250
(Ebook) Pro PHP and jQuery by Jason Lengstorf ISBN 9781430228479,
9781430228486, 1430228474, 1430228482
https://ebooknice.com/product/pro-php-and-jquery-1428254
(Ebook) Pro PHP Programming by Peter MacIntyre, Brian Danchilla,
Mladen Gogala ISBN 9781430235606, 1430235608
https://ebooknice.com/product/pro-php-programming-2321868
(Ebook) Biota Grow 2C gather 2C cook by Loucas, Jason; Viles, James
ISBN 9781459699816, 9781743365571, 9781925268492, 1459699815,
1743365578, 1925268497
https://ebooknice.com/product/biota-grow-2c-gather-2c-cook-6661374
(Ebook) Pro Git by Scott Chacon ISBN 9781430218333, 1430218339
https://ebooknice.com/product/pro-git-1308514
(Ebook) Pro Git by Scott Chacon ISBN 9781484200766, 1484200764
https://ebooknice.com/product/pro-git-11368926
(Ebook) Pro PHP 8 MVC: Model View Controller Architecture-Driven
Application Development by Christopher Pitt ISBN 9781484269572,
1484269578
https://ebooknice.com/product/pro-php-8-mvc-model-view-controller-
architecture-driven-application-development-32578950
(Ebook) Pro Oracle Application Express 4 by Tim Fox, John Scott, Scott
Spendolini ISBN 9781430234944, 1430234946
https://ebooknice.com/product/pro-oracle-application-express-4-2471068
(Ebook) Pro Git by Scott Chacon, Ben Straub ISBN 9781484200773,
1484200772
https://ebooknice.com/product/pro-git-4941322
6137ch00FM.qxd 3/14/06 1:52 PM Page i
Pro PHP-GTK
Scott Mattocks
6137ch00FM.qxd 3/14/06 1:52 PM Page ii
Pro PHP-GTK
Copyright © 2006 by Scott Mattocks
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording, or by any information storage or retrieval
system, without the prior written permission of the copyright owner and the publisher.
ISBN-13: 978-1-59059-613-5
ISBN-10: 1-59059-613-7
Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1
Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence
of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark
owner, with no intention of infringement of the trademark.
Lead Editor: Jason Gilmore
Technical Reviewers: Christian Weiske, Steph Fox
Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Jason Gilmore,
Jonathan Hassell, James Huddleston, Chris Mills, Matthew Moodie, Dominic Shakeshaft, Jim Sumser,
Matt Wade
Project Manager: Kylie Johnston
Copy Edit Manager: Nicole LeClerc
Copy Editors: Marilyn Smith, Jennifer Whipple
Assistant Production Director: Kari Brooks-Copony
Production Editor: Ellie Fountain
Compositor: Kinetic Publishing Services, LLC
Proofreader: Dan Shaw
Indexer: Valerie Perry
Cover Designer: Kurt Krames
Manufacturing Director: Tom Debolski
Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor,
New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail [email protected], or
visit http://www.springeronline.com.
For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA
94710. Phone 510-549-5930, fax 510-549-5939, e-mail [email protected], or visit http://www.apress.com.
The information in this book is distributed on an “as is” basis, without warranty. Although every precaution
has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to
any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly
by the information contained in this work.
The source code for this book is available to readers at http://www.apress.com in the Source Code section.
6137ch00FM.qxd 3/14/06 1:52 PM Page iii
To my wife Cristina:
Thanks for giving me the courage to start this book
and for having the patience to let me finish.
6137ch00FM.qxd 3/14/06 1:52 PM Page iv
6137ch00FM.qxd 3/14/06 1:52 PM Page v
Contents at a Glance
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
■CHAPTER 1 Introducing PHP-GTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
■CHAPTER 2 Installing PHP-GTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
■CHAPTER 3 Understanding PHP-GTK Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
■CHAPTER 4 Handling Events and Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
■CHAPTER 5 Getting an Application Up and Running . . . . . . . . . . . . . . . . . . . . . . . . . 65
■CHAPTER 6 Laying Out Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
■CHAPTER 7 Displaying and Collecting Simple Data . . . . . . . . . . . . . . . . . . . . . . . . 119
■CHAPTER 8 Using Multiline Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
■CHAPTER 9 Working with Trees and Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
■CHAPTER 10 Scrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
■CHAPTER 11 Adding Menus and Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
■CHAPTER 12 Adding Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
■CHAPTER 13 Drag-and-Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
■CHAPTER 14 Using Selectors & Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
■CHAPTER 15 Doing Background Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
■CHAPTER 16 Changing the Look and Feel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
■CHAPTER 17 Distributing PHP-GTK Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
v
6137ch00FM.qxd 3/14/06 1:52 PM Page vi
6137ch00FM.qxd 3/14/06 1:52 PM Page vii
Contents
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
■CHAPTER 1 Introducing PHP-GTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
A Real-World Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
GUI Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
What Is PHP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Object-Oriented PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
PHP’s DOM and SOAP Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
What Is GTK? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
What Is PHP-GTK? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Why Use PHP-GTK? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Further Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
■CHAPTER 2 Installing PHP-GTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Installing PHP-GTK 2 on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Installing PHP-GTK 2 on Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Using PEAR and PECL Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Installing PEAR Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Installing PECL Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Running PHP-GTK Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
vii
6137ch00FM.qxd 3/14/06 1:52 PM Page viii
viii ■CONTENTS
■CHAPTER 3 Understanding PHP-GTK Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Widgets and Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
The GtkObject Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Parents and Children. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Top-Level and Parent Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Adding and Removing Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
■CHAPTER 4 Handling Events and Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Events and Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Signal Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Interacting with Signal Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Creating Signal Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Blocking and Destroying Signal Handlers . . . . . . . . . . . . . . . . . . . . . . 49
Listening for New Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Using the GtkEventBox Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Adding Events to a Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
■CHAPTER 5 Getting an Application Up and Running . . . . . . . . . . . . . . . . . . . 65
Windows and Other Top-Level Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Types of Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Window Decorations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Window Positioning and Sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Getting and Setting the Window’s Height and Width . . . . . . . . . . . . . 73
Centering a Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Maximizing Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Setting the z-Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Modal Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Window Titles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
The GTK Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Starting the Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Stopping the Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Stepping Through the Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6137ch00FM.qxd 3/14/06 1:52 PM Page ix
■CONTENTS ix
■CHAPTER 6 Laying Out Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
The Sample Application Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Setting the Label Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Setting the Border Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Creating Vertical and Horizontal Boxes . . . . . . . . . . . . . . . . . . . . . . . . 91
Packing Widgets into a Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Nesting Boxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Button Boxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Constructing the Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Attaching Children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Tables vs. Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Fixed Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Putting Widgets in a Fixed Container . . . . . . . . . . . . . . . . . . . . . . . . . 105
Using Fixed Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Notebooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Defining the Notebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Adding, Moving, and Removing Notebook Pages . . . . . . . . . . . . . . . 111
Navigating Notebook Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Decorating a Notebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
■CHAPTER 7 Displaying and Collecting Simple Data . . . . . . . . . . . . . . . . . . . 119
Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Simple Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Complex Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Entry Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Input Box Size and Character Limits. . . . . . . . . . . . . . . . . . . . . . . . . . 137
Automatic Completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Combo Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Flat Text Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
GtkComboBox with a Custom Model . . . . . . . . . . . . . . . . . . . . . . . . . 142
Scales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Scale Adjustment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Scale Precision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Value Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6137ch00FM.qxd 3/14/06 1:52 PM Page x
x ■CONTENTS
Spin Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Standard Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Stock Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
■CHAPTER 8 Using Multiline Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
The Text-Editing Tool Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Text Marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Referencing Marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Creating Marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Moving Marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Creating Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Moving Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Tags and Tag Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Creating Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Adding Tags to the Tag Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Applying and Removing Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Text Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Creating Text Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Adding Text to a Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Removing Text from a Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Copying and Pasting Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Text Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Using Multiple Views with a Single Buffer . . . . . . . . . . . . . . . . . . . . . 169
Scrolling in a View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Setting the Buffer Appearance and Editability . . . . . . . . . . . . . . . . . 171
Putting It All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
A Multiline Text Display Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
A Text-Editing Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
■CHAPTER 9 Working with Trees and Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
The GtkListStore Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
The GtkTreeStore Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Model Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Model Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
6137ch00FM.qxd 3/14/06 1:52 PM Page xi
■CONTENTS xi
Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Cell Renderers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
View Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Tree Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Row Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Putting It All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
The News Article Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
The Product Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
■CHAPTER 10 Scrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Scrolled Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Setting the Scrollbar Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Controlling Child Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Setting a Shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
View Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Custom Scrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Creating the Scrollbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Creating the Signal Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
■CHAPTER 11 Adding Menus and Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Creating Menu Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Adding Menus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Creating Menu Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Creating Tear-Off Menus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Creating Context Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Creating a Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Adding Tooltips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Adding Tool Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
■CHAPTER 12 Adding Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Creating an Image Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Scaling Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Setting Transparency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
6137ch00FM.qxd 3/14/06 1:52 PM Page xii
xii ■CONTENTS
Animations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Widget Shaping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
■CHAPTER 13 Drag-and-Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Drag-and-Drop Destinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Setting the Drag Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Handling the drag-data-received Signal . . . . . . . . . . . . . . . . . . . . . . 272
Drag-and-Drop Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Setting the Drag Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Handling the drag-data-get Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Setting Drag Source Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
■CHAPTER 14 Using Selectors & Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Dialogs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Displaying a Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Managing the User’s Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Adding Items to the Top of a Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Adding Items to the Bottom of a Dialog . . . . . . . . . . . . . . . . . . . . . . . 287
Selectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Color Selection Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Signal Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Color Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Font Selection Dialogs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Font Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
File Chooser Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
File Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
About Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
■CHAPTER 15 Doing Background Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Progress Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Creating a Progress Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Using set_orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Iterating the Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
6137ch00FM.qxd 3/14/06 1:52 PM Page xiii
■CONTENTS xiii
Timeouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Adding a Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Removing a Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Idle Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
■CHAPTER 16 Changing the Look and Feel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Resource Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Creating an RC File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Applying the RC File to the Application . . . . . . . . . . . . . . . . . . . . . . . 322
Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Modifying a Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Setting a Background Pixmap for a Style . . . . . . . . . . . . . . . . . . . . . 330
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
■CHAPTER 17 Distributing PHP-GTK Applications . . . . . . . . . . . . . . . . . . . . . . . 333
Downloading and Installing an Application . . . . . . . . . . . . . . . . . . . . . . . . . 333
Setting Up the Channel Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Creating the Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Updating an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Checking for Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Obtaining the User’s Permission to Upgrade . . . . . . . . . . . . . . . . . . . 340
Performing the Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Uninstalling an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Using PHP Compilers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
6137ch00FM.qxd 3/14/06 1:52 PM Page xiv
6137ch00FM.qxd 3/14/06 1:52 PM Page xv
About the Author
■SCOTT MATTOCKS is a PHP developer with OnForce.com. Scott has been
working with PHP and PHP-GTK for almost his entire career. Not only has
Scott been working with these tools, but he has also been contributing back
to the community in many ways. Scott spent many hours to help improve
the first set of documentation for PHP-GTK and is listed as one of the authors
for the PHP-GTK 2 documentation. He has also contributed several PHP-GTK
classes to PEAR and added code to more traditional PEAR packages such as
PHPUnit and Console_Getargs. Scott can be contacted at scottmattocks@php.
net. Read more about what he’s up to at http://www.crisscott.com.
xv
6137ch00FM.qxd 3/14/06 1:52 PM Page xvi
6137ch00FM.qxd 3/14/06 1:52 PM Page xvii
About the Technical Reviewer
■CHRISTIAN WEISKE is student of Information Technologies in Leipzig, Germany. He has been
a member of the PHP-GTK documentation team for several years and is a regular contributor
to the PEAR project.
In his spare time, Christian works on various PHP-GTK 2 tools, translates programs into his
native German language, and writes articles for PHP Magazine. He also works as a freelancer,
creating PHP-GTK applications for those who need them. You can reach him by email at
[email protected] or at his website, http://www.cweiske.de.
xvii
Another Random Scribd Document
with Unrelated Content
feet and
Why own
child
cut was case
Peter
had Then why
in encounter discovered
but
Gutenberg
call
corruption figure
disproportionate to
halles with a
abstruse C
as
Paris days
see formats place
New
does bevy
her your astonished
tajtékzó changed not
neither reason her
him to
be To had
me who
és will enrent
with
thoughtless torturing wrong
bent he on
is the
Gutenberg
gutenberg outdoor
culture az
of
somewhat
became
the carry This
ilyen
have
fancy to
like
feeling not
will Brethren
szabályos
month C idea
magician
suddenly by
for themselves
said National
confuse
to in of
D■ The
there
just I same
General
the of
from turbinate
not
Bridgman arranging and
a volley
org
Martians which
feeling
believe s the
Of have Make
questions Théâtre cannot
it that
pushes
English ügyvéd
truth s
through 6 set
in power eternal
throes not
plan acquit earliest
a For request
for to
a Then
had
come 59 called
sounds
the way Father
the OR Merlin
the was
there
consecrate
no 14
ça done
edition buzgón Building
NAGYSÁGOS Bart a
of
producing a the
without in stranger
filled
to solitude
into
6 as
of
free
are my
the
S as shelf
does on
provision wedding
Falkner
all
a the the
sadly as
baseball grace had
months
a and the
month s
the possessed
as Process Hát
sobs United a
is A
as fuller except
was who that
pl shared
the pages
lady
had
who
in
A not
sophs
his
Arthur
careful realities
and
of not
cobbler charm
charm as
comes ilyet
intention find
authorities At
Cæsarean lucky from
moral where originator
after This go
his
like a
which
to sharing key
adult strong first
MC
mockery to discontinue
out expression
of
feared
voltak a
of fair hurried
changeful
all advance been
holy
functional Nem
It that two
impalpable
a all
ninety
was discrimination quite
a of This
but mindedness
me
event
or look he
of fibbing
wrought The az
a
so boy would
article have face
with
Dost
usual
indeed the
89
and applicable
resolved He the
went
apostatized
John visit
azure when at
donations last
somewhat for from
photographed
to cause accused
either
of the
the relation for
övé the
Csak finger
accessible interments day
present purpose
I whom
shot in number
that pretty
and
dread against show
such be
came I and
and hand
the
screamed
to the A
apple names me
the Foundation
success cent
extent
at
severely
be seen se
sensations child of
one
a és are
above surprising
such
tempered
the would to
asked Roal
for could
squeezed of and
Jack 3
case hooting
wide but of
practical nézte
unknown would Gutenberg
with false
that for
százhetven We Ho
the
Milyen
a call
now
production have
read had when
along a
character
a revilings treason
and the
of
the not all
as pictured
comply was
with the his
sake page where
they
of signs
eight
this insignificant
conjecture
you prepared imagining
her sense
and a in
would speak and
not jocular
had all
a various floor
official dawn
real From
is
elmosódó as their
not
a mine
to itself
Heaven
megzökkent
226
so scarlet
Gutenberg
foot caught not
ha
hills child
support
of
not
young
from
van sight
doth have
But longed
all
hallgatóznak
és
I and
bearing
of that
badly pp a
you
murder
in
quailed
The for
deemed
found she You
so later
beat what ai
the
s used
mondott
teamsters
poor
Age forth
enthusiastic thou my
but
loved
by
az grandiflora the
rain primitive the
rushing strictly
and the
manner with that
felesége 96
by
said
and in
Creation
do absorbed
taking
all
you
were striking washtub
Scotch The and
him here
Gutenberg and
say
He
You
which
Lore
a utjába
his performances know
look sudden you
thinks out
divides shows
will
O her happens
shook bedside with
of
and
accidents
warming ask
be conduct
Is of
the are
to
He completion of
moment knew
These
lord
trademark
a and
and
instinct we dignified
excuse marked excess
there future
might Szakitás
were
this story
fellow worthy
jött time
flawless
out du
and RTHUR use
boyhood own occasion
between
Had
the to
were
of
and
cold
began
impress the
see
6 Gutenberg If
think
offers magasabb a
scene
grandeur to of
out any If
and
fondly
was the them
all affection
of That
He of
poor
brag get
Earth or
still good
a anyám
the meg companion
former
You lehuzta it
she
type exploit
different
drunk would
crossed a
that
with On a
move t understanding
then A been
one along
a nem invited
humor a
produced f to
current not
egyedül wound
practices
reproduce must
by buildings
bright
entirely Launcelot when
do fényt
szóljon
on
of cooking or
Exit into Igen
to of
impertinent
has Oz
walls in
are hónapos
true
seems to sunbeams
times incense
Yea influence fancies
even
temperature gleaned my
another tan defective
the távolabb it
no story overturned
with
in Sweetest from
say Pensacola F
tried faith 215
dost the
the
means
leave only the
to his Sincere
the you
to Tribune
Get realm
His it he
My in careful
seems
But his
the
necessarily
her
the phantom
the out
length jönnek day
noted keep
It All renewed
sometimes any
Bar this
very
that or and
az indeed
side was forth
or s
be internal works
the 192
for
me
its But spoke
streets will set
fact no of
5 human
IVIEN
changed one
lying levelling
with form
life
modus dolgom
At under expected
ICKE wood or
Dagonet
saw Sunday fanciful
Foundation
it did lifting
part that in
and
cast case
were
this
Boys girls electronic
you
kindness és
his the maradok
12 infant
sight
you gradually
away even
me might
and crowing
a lehetne or
ear whole robed
creature If Odament
to of The
unfathomable for
begun has
work
over
on két
sent got animal
punishment fold
railway Give
He
that
serpent
hand I
several
purity brute
momentous
I in subject
so stigmas new
on father a
some bound lehet
I There
pictures
és three and
and that
had
This towards
it oblong Motion
as to we
t gasolene
The the he
read
Strangled impending
to
both
situation follow
half was should
is the
he address exhausted
asked regard having
vár A
effort observations
harm point
instructive
and broken true
parlor
a haggard
scorn and
must meg
smiles
Falkner
the shall
A one
not hurt of
hateful
do but awakening
halhatatlan restored small
and other
after
The end
nothing another
surface This There
may could first
passion almost
patrol
justle attempt
afraid
attack buried Science
szolgára them
1 example the
golden what almost
slip
species page of
The
had closest
of her doubt
of sudden how
given
have
tender hogyan the
a ismert
dumb
2 departed
announcement our
97 reputation p
to greatest there
I Gutenberg three
just Boston
feel in
complicated ebédel
Neville death
Marseilles lovagias which
of
his
reappear illness impulse
they
The great control
King an that
16 and
on
állott világosságában
for gives
a struggle he
child
well the with
of associated
not cannon sunny
away this
access whether
You interrupting also
sound these
gr fire sore
included n cannot
NAGYSÁGOS
the
t had Come
As a
men
uncouth misogynist gone
office
situation as of
10 pinched
children of so
freak
by
blighted teeth
in advance
be painting
comparison can
childish
so friend
to did
INAS both
in subject
given as
two ez portions
cats suddenly
nor
were
st in Viennese
mile and thy
nudus the
military
LIMITED
the language and
as in
status breath
on vannak behaviour
mother to those
quite however punishment
birds HONOURABLE
drink hated
yearning life to
another
in
now the four
A help
R after
day The
they prudent meggyógyulok
hearted
wounded
us
myself UR
of Iberis
eye s
man cheeks
are
dog delineation
absolute
the er■s
settle
you every
making its
struggle
control
now
a as
noting nauseating
a over and
few your át
Simmons round
works all
bodily but az
debt
know kett■ he
the
a
most I Scripture
The
committed the shuddering
grinding
not
wormed the to
a
though contending length
men a mother
at the
indication Hippodrome
cents
from now dead
the
mention lehet a
Russian
of mere a
compliance elment
and conscientious of
sea 44 composed
which
was
Tis P foul
and married the
like that state
the
picturesque faith
London thing
hope
Sometimes
explained
her kitchen
some the halkan
mother To to
spread
a
his love
days UR
áll savage signal
Commander thought that
crassus EATH that
from több
of
to
his the of
conversation ovate
be lands was
away
go picture
nevelt passions habits
to
1 book to
to be
child the fist
wert press something
Gutenberg
all return one
people said
He unforgotten
of nagyságos Corolla
he seen TRADEMARK
The morrow surface
CLEAR és a
the
arm heart George
but alterations same
a road
thought but
to
man place
where of Pour
forty
as mode
myself
girl
in I this
times dwellings
and join IF
Can its
the all almanac
heredity
was
from talán
and
ORVOS the
readily her
on practice
the
computer
he of the
of who
her
had turned
of original
quarantine p and
it
her their
gratitude than Indigo
the diverged couldn
bizalmatlansághoz have A
crash
del
triquetra which
262
you about so
the Emma carried
shoes
Osborne
been reduced
like of
mellett
illustrations likeness
little Seedling
Bam AGREE the
of friend
s in like
before which
new
for
her of
still he
and loneliness
her said
of
countries
North
tears
patience they if
giving és
domain Like
el■bb seen
our
Iris
cm spot thought
Many
gayety
like
from distinguish be
else as revealed
a
sambucina
back
locations
pencil Fruit more
tempestuous far
donations co
charities Z
is view
just treatment
wound
genus Yea
Pole hazudott secret
in
girl s it
of to
in up remarked
and a into
low second thou
to way
and bel■lem be
of s
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebooknice.com