Course detail

Graphical User Interfaces in X Window System

FIT-GUXAcad. year: 2023/2024

Interaction between user and application, different application classes. Graphical User Interface in Unix and its history. X Window System structure, X server concept, X Protocol. Application programming interface, Toolkits. Standard X Toolkit and its usage. Object orientation features in X Toolkit and Gtk. Widget names, attributes and manipulation. Event processing, translation and action table. Base Gtk classes. Programming Gtk3 and Gtk4.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Entry knowledge

C language programming in Unix environment.

Rules for evaluation and completion of the course

Written mid-term exam (max. 20 points) and submitting projects in due dates. There is no alternative term of mid-term exam.


Projects have to be submitted before the deadline, late project submission will be graded 0 points.

Aims

The goal is to make students familiar with the design and programming of graphical user interfaces in Unix/X Window System environment.

Students will get knowledge of application programming in X Window, X Toolkit Intrinsics, Gtk3, Gtk4 and basic principles of user interface design.

Study aids

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Hix, D., Hartson, H., R.: Developing User Interfaces: Ensuring Usability Through Product & Process, John Wiley & Sons, 1993, ISBN 0-471-57813-4 Scheifler, R., W., Gettys, J.: X Window System, The Complete Reference to Xlib, X Protocol, ICCCM, XLFD, Digital Press, 1990, ISBN 1-55558-050-5 Nye, A., O'Reilly, T.: X Toolkit Intrinsics Programming Manual, OSF/Motif Edition, O'Reilly & Associates, 1990, ISBN 0-937175-62-5 Krause, A.: Foundations of GTK+ Development, Apress, 2007, ISBN13: 978-1-59059-793-4 Heller, D.: Motif Programming Manual, O'Reilly & Associates, 3rd ed 2002, ISBN 1-56592-016-3 Sheets, J.R.: Writing GNOME applications, Addison-Wesley, 2001, ISBN 0-201-65791-0 Dallheimer, M.K.: Programming with Qt, O'Reilly Verlag GmbH, 2001, ISBN 0-596-00064-2 Warkus, M.: Official GNOME 2 Developer's Guide, O'Reilly, 2004, ISBN: 1-59327-030-5

Recommended reading

Krause, A.: Foundations of GTK+ Development, Apress, 2007, ISBN13: 978-1-59059-793-4 Heller, D.: Motif Programming Manual, O'Reilly & Associates, 3rd ed 2002, ISBN 1-56592-016-3 https://docs.gtk.org/gtk4/

Classification of course in study plans

  • Programme IT-MSC-2 Master's

    branch MIS , 0 year of study, winter semester, compulsory-optional
    branch MGM , 0 year of study, winter semester, compulsory-optional
    branch MBS , 0 year of study, winter semester, elective
    branch MPV , 0 year of study, winter semester, elective
    branch MIN , 0 year of study, winter semester, elective
    branch MBI , 0 year of study, winter semester, elective
    branch MSK , 0 year of study, winter semester, elective
    branch MMM , 0 year of study, winter semester, elective

  • Programme MITAI Master's

    specialization NSPE , 0 year of study, winter semester, elective
    specialization NBIO , 0 year of study, winter semester, elective
    specialization NSEN , 0 year of study, winter semester, elective
    specialization NVIZ , 0 year of study, winter semester, elective
    specialization NGRI , 0 year of study, winter semester, elective
    specialization NADE , 0 year of study, winter semester, elective
    specialization NISD , 0 year of study, winter semester, elective
    specialization NMAT , 0 year of study, winter semester, elective
    specialization NSEC , 0 year of study, winter semester, elective
    specialization NISY up to 2020/21 , 0 year of study, winter semester, elective
    specialization NCPS , 0 year of study, winter semester, elective
    specialization NHPC , 0 year of study, winter semester, elective
    specialization NNET , 0 year of study, winter semester, elective
    specialization NMAL , 0 year of study, winter semester, elective
    specialization NVER , 0 year of study, winter semester, elective
    specialization NIDE , 0 year of study, winter semester, elective
    specialization NEMB , 0 year of study, winter semester, elective
    specialization NISY , 0 year of study, winter semester, elective
    specialization NEMB up to 2021/22 , 0 year of study, winter semester, elective

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

  1. Application classes from the point of view of user interaction.
  2. X Window System structure, X Protocol, input and output graphic operations.
  3. Xlib level programming, simple application example, Toolkits, example of application using toolkit.
  4. OOP features in X Toolkit and Gtk, instance and class of widgets, properties, internal implementation.
  5. Widget naming system, resources, convertors.
  6. Built-in X Toolkit and Gtk widget classes and their usage.
  7. Event processing, translation table, action table.
  8. Simple Gtk widget classes and their usage.
  9. Composite widget classes.
  10. Menu and dialogs.

Project

26 hod., compulsory

Teacher / Lecturer

Syllabus

  1. Gtk/GNOME application, individual assignment.