1999-11-30 Miguel de Icaza * e-cell-checkbox.c (e_cell_checkbox_new): This one derives from e-cell-toggle. * check-emtpy.xpm, check-filled.xpm: new files. * e-cell-toggle.c (etog_draw): Paint in white. If we have transparency enabled, do the nice alpha computation. * test-table.c, test-cols.c: new files; They implement the split tests. 1999-11-29 Miguel de Icaza * e-table-col.c (e_table_col_new): Set etc->resizeable. * e-table-header-item.c (ethi_event): Handle non-resizeables columns; Add support for minimum width. * e-cell-toggle.c, e-cell-toggle.h: New file. Implement a multi-state image toggle cell object. * e-cell-text.c (ect_leave_edit): Handle the case of us calling leave edit manually. (ect_stop_editing): Leave manually editing here. (ect_draw): Add one pixel to the border for left and right; Handle off-screen cursor (must be improved). (ect_edit_select_all): New function. (ect_event): Select all text on editing start * e-table-item.c (eti_event): Map mouse events and dispatch them. (eti_event): Add spreadsheet mode for editing; Enter editing only with visual characters; Leave editing mode when a different row has been selected. (eti_get_height): Fix the computation for this; Fix logic for the length_threshold. (eti_draw): Add borders on all sides of the box; Only draw focus if the cell is not being edited. 1999-11-28 Miguel de Icaza * e-table-item.c (eti_draw): Focus inside, not outside. (eti_realize): Enhance our focus gc. * e-cell-text.c (ect_enter_edit, ect_leave_edit): New methods; They implement editing. * e-cell.h: new methods: enter_edit, leave_edit * e-table-model.h (set_value_at): make val argument const. * e-table-simple.c (simple_set_value_at): Make value argument const; * e-table-item.c (eti_set_arg): Add new mode: draw_focus; 1999-11-27 Miguel de Icaza * e-table-item.c (eti_event): beginning of the keyboard navigation. * e-table-model.c (e_table_model_row_changed): new function. (e_table_model_cell_changed): new function. (e_table_model_class_init): New signals. * e-table-item.c (eti_request_region_redraw): x2, y2 offsets were wrong. (eti_select): Repaint selected region. (eti_request_region_redraw): Fix range. (eti_draw): Correct offset computation here. (e_table_item_class_init): New method: row_selection, handles the selection. Now it implement GTK_SELECTION_SINGLE and GTK_SELECTION_MULTIPLE. Focusing and selection should be correct now. 1999-11-26 Miguel de Icaza * e-table-item.c (eti_realize): Compute height using the ecell methods here. (eti_get_height): new method to compute dimensions. * e-cursors.c: use a different cursor. * e-table-model.h: kill height and row_height methods. * e-cell.c (ec_height): New method. * e-cell-text.c (ect_realize): Load the font from the canvas. (ect_draw): New color setup. Center in the row. (ect_height): Implement new method. 1999-11-26 Michael Meeks * ROADMAP.e-table: small spelling/typo fixes. 1999-11-25 Miguel de Icaza * e-table-item.c (eti_event): Work on mouse-button event propagation to cells. * e-cell-text.c (ect_draw): Use CellViews now. * e-table-item.c (eti_realize_cell_views): New routine: Realizes the cell views (eti_unrealize_cell_views): New routine: unrealizes the cell views. * e-table-item.h: Move cell_views array here. * table-test.c (value_at): Fix return value. (main): use new invocation method. * e-table-header-item.c (ethi_realize): Realize cells. * e-table-item.c (eti_header_dim_changed): redraw before and after. * e-table-header-item.c (ethi_event): Add continuous resizing. 1999-11-24 Miguel de Icaza * e-table-subset.h, e-table-subset.c: New files, used to implement subset tables. * e-table-sorted.h, e-table-sorted.c: Now they derive from e-table-subset. * e-cell.c, e-cell.h: realize method now return per view instance data. 1999-11-20 Miguel de Icaza * e-table-item.c (eti_draw): WOOOOHOOOOOoO! It took me quite a while to figure this one out. Fixed. * e-table-header-item.c (ethi_set_arg): Compute width, keep track of it. (ethi_add_table_header): Monitor changes to the Header model; Queue updates. (ethi_draw): Fix the redraw logic here. * table-test.c (main): Change the sample code, so we can better debug this. * e-table-item.c (eti_header_structure_changed): Keep track of width; (eti_header_dim_changed): ditto. (eti_draw): Many redraw fixes. 1999-11-19 Miguel de Icaza * e-table-item.c (eti_realize): Hook up; Load gcs. (eti_unrealize): Hook up. * e-table-sorted.c: Finished implementing. 1999-11-18 Miguel de Icaza * e-table-model.c (e_table_model_class_init): Add model_changed signal here. * e-table-item.c, e-table-item.h: New files. They implement the view of the ETableModel as Canvas Items. * e-table-header-item.c (ethi_set_arg): Ref header here. (ethi_destroy): Unref it here. 1999-11-17 Ettore Perazzoli * e-msg-composer-address-dialog.c: Moved to `$(srcdir)/composer'. * e-msg-composer-address-dialog.h: Likewise. * e-msg-composer-address-entry.c: Likewise. * e-msg-composer-address-entry.h: Likewise. * e-msg-composer-attachment-bar.c: Likewise. * e-msg-composer-attachment-bar.h: Likewise. * e-msg-composer-attachment.c: Likewise. * e-msg-composer-attachment.h: Likewise. * e-msg-composer-hdrs.c: Likewise. * e-msg-composer-hdrs.h: Likewise. * e-msg-composer.c: Likewise. * e-msg-composer.h: Likewise. * e-msg-composer-address-dialog.glade: Likewise. * e-msg-composer-attachment.glade: Likewise. * e-msg-composer.glade: Likewise. * Makefile.am: Updated accordingly. Nov 14 1999 Elliot Lee * Makefile.am: It's libevolutionwidgets.la, not .a 1999-11-14 Miguel de Icaza * e-table-header-item.c (is_pointer_on_division): Add resizing capabilities. * e-table-sorted.c: Finish implementation. 1999-11-13 Miguel de Icaza * e-table-sorted.c: Implement e-table-sorted object. 1999-11-12 Miguel de Icaza * e-table-header-item.c: Make the thing configurable. * e-table-header-item.h: Add font field, location, height. 1999-11-12 Ettore Perazzoli * e-msg-composer-hdrs.c: New member `tooltips' in `struct _EMsgComposerHdrsPrivate'. (init): Initialize it. (destroy): New function. (class_init): Install it as the `destroy' GtkObject method. (add_header): New parameters `tip', `tip_private'. Setup a tooltip for the entry with them. (setup_headers): Updated accordingly. 1999-11-11 Miguel de Icaza * e-table-header.c (e_table_header_add_column): Update offsets. (eth_update_offsets): New routine. * e-table-col.h, e-table-col.c: New files. * e-table-header.h (e_table_header_get_selected_indexes): Pretify. * table-test.c (main): New file; used for testing ETable package. * e-table-simple.h: Fix type. 1999-11-12 Ettore Perazzoli * e-msg-composer-address-dialog.glade: Cosmetical changes. * e-msg-composer-attachment-bar.c (size_to_string): New helper function. (update): Put the size in the icon's label using this function. (ICON_SEPARATORS): Remove '.' to avoid wrapping of the size string on the decimal dot. But gnome-libs is broken and this has no real effect! :-( (e_msg_composer_attachment_bar_new): No longer make text editable. Use the `GTK_SELECTION_MULTIPLE' selection mode. (remove_selected): No longer assume only one attachment is selected. * e-msg-composer-attachment.c: #include (init): Initialize all the members. (e_msg_composer_attachment_new): Set size using `stat()'. * e-msg-composer-attachment.h: New member `size' in `struct _EMsgComposerAttachment'. * e-msg-composer.c (setup_signals): Connect `address_dialog_cb' to the "show_address_dialog" signal of the header widget. * e-msg-composer-hdrs.c (add_address_header): Renamed to `add_header'. New parameter `addrbook_button': if true, use a button instead of a label and make it trigger an "show_address_dialog" signal. (address_button_clicked_cb): Signal handler to handle this on a "clicked" signal from the button. (setup_headers): Updated accordingly. Also, make "Subject" the last item. (This makes it look more like Outlook and friends.) * e-msg-composer-hdrs.c: New signal "show_address_dialog". * e-msg-composer-hdrs.h: Updated accordingly. * e-msg-composer-hdrs.c (add_address_header): Reduce padding considerably. * e-msg-composer.c (e_msg_composer_construct): Do not use any padding in the main vbox. * Makefile.am: Moved the `e-table*' sources to `EXTRA_DIST'. Compile as a shared library. 1999-11-08 Ettore Perazzoli * e-msg-composer-address-dialog.c: Implemented cut & paste for the recipient lists. (init): Initialize `cut_buffer'. (destroy): Free it. (recipient_clist_selection_get_cb): New function. (recipient_clist_selection_received_cb): New function. (recipient_clist_selection_clear_event_cb): New function. (setup_recipient_list_signals): Install them as signal handlers for "selection_get", "selection_received" and "selection_clear_event" respectively. (copy_recipient_cb): New function implementing the "copy" operation. (cut_recipient_cb): New function implementing the "cut" operation. (paste_recipient_cb): New function implementing the "paste" operation. * e-msg-composer-address-dialog.h: New member `cut_buffer' in `struct _EMsgComposerAddressDialog'. 1999-11-07 Ettore Perazzoli * e-msg-composer-address-dialog.c: New context menu `recipient_list_popup_info' for the recipient CLists. (recipient_clist_button_press_cb): New function. (setup_signals): Install it as the "button_press_event" signal handler for popping up the CList context menu. * e-msg-composer.c (free_string_list): New helper function. (setup_address_dialog): Setup the initial values in the address dialog according to the ones in the header widget. * e-msg-composer-hdrs.c (e_msg_composer_hdrs_get_to): New function. (e_msg_composer_hdrs_get_cc): New function. (e_msg_composer_hdrs_get_bcc): New function. * e-msg-composer.c (setup_address_dialog): New helper function. (address_dialog_cb): Use it. * e-msg-composer-address-dialog.c (add_address): Do not set the row data anymore. Instead, put the full address description (i.e. complete with the email address, not just the full name) in the CList. (add_address): Do nothing if no item is selected in the address CList. (get_list): Get the address list from the CList without passing through the address CList. (set_list): New helper function. (e_msg_composer_address_dialog_set_to_list): New function. (e_msg_composer_address_dialog_set_cc_list): New function. (e_msg_composer_address_dialog_set_bcc_list): New function. * e-msg-composer.c (address_dialog_apply_cb): Apply values from the address dialog into the composer. * e-msg-composer-hdrs.c (e_msg_composer_hdrs_set_to): New function. (e_msg_composer_hdrs_set_cc): New function. (e_msg_composer_hdrs_set_bcc): New function. * e-msg-composer-address-entry.c (e_msg_composer_address_entry_set_list): New function. * e-msg-composer-address-dialog.c (apply): New helper function. (clicked): New function, `clicked' method for the `GnomeDialog' class. (class_init): Install it. 1999-11-06 Ettore Perazzoli * e-msg-composer-attachment-bar.c (destroy): Call the destroy method of the parent class. * e-msg-composer.c: #include "e-msg-composer-address-dialog.h". (address_dialog_cb): New callback to start the address dialog. (setup_signals): Connect it to the appropriate button/menu item. (init): Initialize the new `address_dialog' member to NULL. (destroy): Destroy the `address_dialog' if not NULL. * e-msg-composer.h: New member `address_dialog' in `struct _EMsgComposer'. * e-msg-composer.glade: Added button to activate the address composition dialog. * e-msg-composer-address-dialog.h, e-msg-composer-address-dialog.c: New files implementing the address composition dialog for Evolution. * e-msg-composer-address-dialog.glade: New file. * e-msg-composer-attachment.c: `signals' made static. 1999-11-05 Ettore Perazzoli * Makefile.am: Compile the new files in a `libevolutionwidgets' library. (CPPFLAGS): #define `E_GUIDIR'. * e-msg-composer.c, e-msg-composer.h: New files implementing an initial version of the Evolution message composer widget. * e-msg-composer-address-entry.c, e-msg-composer-address-entry.h: New files implementing a GtkEntry customized for entering email address lists. * e-msg-composer-attachment-bar.c, e-msg-composer-attachment-bar.h: New files implementing a widget for editing mail attachments. * e-msg-composer-attachment.c, e-msg-composer-attachment.h: New files implementing file attachment objects for the message composer. * e-msg-composer-hdrs.c, e-msg-composer-hdrs.h: New files implementing a widget for editing of email message headers. * e-msg-composer-attachment.glade: New file. * e-msg-composer.glade: New file. 1999-10-31 Miguel de Icaza * widgets/e-table-column.c, e-table-column.h: New file, implements the e-table-column object. * widget/e-table-model.h, e-table-model.c, e-table-simple.c, e-table-simple.h: New files. Implements the column model and a simple table wrapper.