Commit Graph

187 Commits

Author SHA1 Message Date
Andy Williams 7ffa533392 Merge branch 'master' into elm_code 2015-03-25 20:52:14 +00:00
Andy Williams 7eede66db6 elm_code: Remove accidental dep on efl-git 2015-03-25 14:05:47 +00:00
Andy Williams e2718aac97 elm_code: add text search functions.
Update the search and replace UI to work with the new elm_ode UI.
2015-03-22 22:36:04 +00:00
Andy Williams ef4e5ee686 elm_code selection: move cursor to selection 2015-03-22 22:28:07 +00:00
Andy Williams 036622efd2 elm_code widget: fire user change events
This does not yet have a "change" attached so does not
support undo/redo yet
2015-03-21 20:04:12 +00:00
Andy Williams 015b2cfa97 elm_code file: add save method to write out lines
use a temporary file as we may have mapped the data directly.
2015-03-21 19:25:25 +00:00
Andy Williams c335a5b921 elm_code file: get line ending chars
Quickly add support for the line end character sequence.
Just windows and Unix now, as per the enum defined.
2015-03-21 13:58:30 +00:00
Andy Williams 6509d5c1d6 elm_code selection: Input selecttion from mouse
When editable allow dragging the cursor with a mouse button
down then set up a selecttion.
2015-03-18 22:24:56 +00:00
Andy Williams 4398dd38f8 elm_code whitespace: only display actual newlines
No newlines at the end of a file if there is no other line
2015-03-18 22:18:34 +00:00
Andy Williams e4cf9ed41a elm_code: selection highlighting
Adding initial support for displaying selection within the widget
2015-03-17 22:42:03 +00:00
Andy Williams 433bac2c1b elm_code file: detect line endings
Check for Windows otherwise default to unix for now.
2015-03-15 23:07:31 +00:00
Andy Williams 7c5d0e3873 elm_code unicode: highlight tokens correctly
When encountering unicode characters make sure we highlight
in the correct columns rather than at the byte locations.
2015-03-14 16:42:56 +00:00
Andy Williams ec58b84e3e elm_code editor: fix crash backspacing last line
fill an empty line if we're deleting the last line
2015-03-08 12:07:29 +01:00
Andy Williams 6457da6482 elm_code edit: split content on newline.
Tokens also need to be split so this is text only for now
2015-03-08 11:52:12 +01:00
Andy Williams 7f787e8cae elm_code widget: backspace or delete merges lines
This is text only for now but serves as editor foundation.
2015-03-08 11:33:07 +01:00
Andy Williams e951c13e91 elm_code line: move freeing to the line file 2015-03-08 11:15:31 +01:00
Andy Williams ed521af168 elm_code line: unsigned int for length 2015-03-08 11:14:02 +01:00
Andy Williams f96c0345ff elm_code edit: support backspace and delete.
don't propogate backspace as other widgets use it to navigate
adjust tokens left when we remove content and remove if 0 width token.
2015-03-08 09:44:26 +01:00
Andy Williams 4e14c1a069 elm_code unicode: update when editing
issues here with inserting unicode which I need to get to
2015-03-07 22:35:59 +01:00
Andy Williams a2026576a2 Add initial unicode support for elm_code
Note the number of utf8 characters when we load the data.
Make sure the widget is referencing unicode_length
for all our metrics.
2015-03-07 20:48:02 +01:00
Andy Williams 2e5d0e7e02 elm_code editor: adjust tokens when we insert text 2015-02-28 22:50:18 +00:00
Andy Williams 9e184f6270 elm_code demo: Show multiple widgets for one code.
Illustrates that we can display a single elm_code in many widgets
2015-02-27 15:33:06 +00:00
Andy Williams 8517f47124 Merge branch 'master' into devs/ajwillia-ms/elm_code 2015-02-27 15:13:06 +00:00
Andy Williams ec9c327ce1 editor: update to latest elm_code and show whitespace 2015-02-28 16:28:22 +00:00
Andy Williams 3800160732 Merge branch 'master' into elm_code
Conflicts:
	elm_code/src/lib/elm_code_diff_widget.c
2015-02-28 15:31:57 +00:00
Andy Williams dec03ca188 elm_code widget: add show_whitespace option
display items for space, tab and newline if requested
2015-02-28 14:59:42 +00:00
Andy Williams c4f97f2f3e elm_code: support line insertion
in our widget call a line insertion on enter pressed
2015-02-28 14:20:32 +00:00
Andy Williams f4a760f4a5 elm_code: require an elm_code for each widget
In our finalizer we ensure that an elm_code is set.
No longer allow code_set to be called after construction.
2015-02-28 13:22:38 +00:00
Andy Williams 20c108ea32 elm_code tests: fix test path 2015-02-28 13:14:18 +00:00
Andy Williams df310e14f4 elm_code: Fix finalized check macro 2015-02-27 15:07:38 +00:00
Andy Williams a7adf4f1f6 elm_code edit: Support insert of any single char.
broadens from alphanumeric to include punctionation
and various symbols.
2015-02-26 23:56:10 +00:00
Andy Williams bc1cfc7b87 elm_code parse: Add standard parsers starting with diff.
Allow code instances to have provided parsers added easily.
These can be chained to have multiple passes.
2015-02-26 23:19:09 +00:00
Andy Williams a79c01f1da merge changes from master 2015-02-26 13:56:50 +00:00
Andy Williams b89e88accc elm_code: Move parser callbacks to private.
Don't expose the internal callback mechanics, just the addition of parsers
2015-02-26 13:54:46 +00:00
Andy Williams 627adf8d2a syntax: Actually use the elm_code parser api.
Improve the API to allow passing of user data to the calls.
Yes, I forgot about this, it works well so remove the STYLE_SET callback
2015-02-24 00:32:40 +00:00
Andy Williams 67eb529aa3 elm_code: Add missing status icons from new states 2015-02-24 00:26:58 +00:00
Andy Williams ca9b64e3c8 elm_code: display a line-width marker if requested 2015-02-23 21:52:49 +00:00
Andy Williams b08274d8b1 Merge branch master
conflicts in elm_code_widget.c resolved
2015-02-22 23:38:54 +00:00
Andy Williams e329755283 elm_code: Fill the widget and gutter to the end
This helps with refreshing too so we blank removed lines
2015-02-22 22:13:33 +00:00
Andy Williams d9a94200cc elm_code: don't run resize code more than needed
Our cells are now always the size of the widget so
we can avoid the safety checks...
2015-02-22 21:50:34 +00:00
Andy Williams c3e0883808 elm_code: Support text insertion for simple edits.
Hook into the widget for elm_code_test and edi editors.
Only alphanumeric and space, but it's a start.
2015-02-22 20:07:08 +00:00
Andy Williams cb83e9e912 elm_code: Support multi-line tokens
Adding a new token to each line it covers.
Each token references the end line so newline behaviour can be set
2015-02-21 18:24:17 +00:00
Andy Williams 685abd7054 syntax: Update clang to output elm_code tokens
Addition of a refresh line command to say we're done.
We no longer need an active window for highlighting
as it's so much faster!
2015-02-21 17:30:17 +00:00
Andy Williams 2b64f2fd1b Merge branch 'master' into elm_code
Conflicts:
	elm_code/src/lib/elm_code_widget.c
	elm_code/src/lib/elm_code_widget.eo.c
	elm_code/src/lib/elm_code_widget.eo.h
2015-02-19 22:39:11 +00:00
Andy Williams d59ce760ca eo: remove generated files from git 2015-02-19 22:35:01 +00:00
Andy Williams 4e1af4b488 elm_code: Update FIXME to be realisic - the textgrid size_set does not append 2015-02-19 21:52:41 +00:00
Andy Williams 5d0224efa5 elm_code: get / set the cursor position
When the cursor is updated make sure we have scrolled
so it's visible. Also adjust focus next points too.
2015-02-19 21:16:18 +00:00
Andy Williams 9dea8c488d elm_code: Actually use it as our main editor window!
Need to hook in the clang highlighting and undo stack to the elm_code_widget
2015-02-19 00:22:07 +00:00
Andy Williams 384a12282e Add a temporary fix for some scroll/append/refresh issue with layout 2015-02-17 23:56:20 +00:00
Andy Williams f9709f915c An update to get closer to make check passing for windows.
Thanks (and credit) to Vincent Torri again
2015-02-15 20:35:41 +00:00
Andy Williams 9a0f269e92 elm_code: Tidying our callbacks and line manipulation.
Now the line_done callback allows styling to be set during the load process.
2015-02-14 23:14:06 +00:00
Andy Williams 4f49e230bd elm_code: focus: block focus leaving text area when editable.
As well as setting when we should not have focus leave us a theme has been added.
This allows us to extend from elm_entry which is better suited to us.
2015-02-14 18:49:51 +00:00
Andy Williams a1d9eae33c Improving focus control a little 2015-02-11 22:01:37 +00:00
Andy Williams aa741e4898 Fixing some warnings on Windows.
Thanks, Vincent Torri
2015-02-11 21:25:09 +00:00
Andy Williams 32e73da189 Use public types as far as possible 2015-02-11 19:13:48 +00:00
Andy Williams 486a50986c elm_code: Update demo to split various functions. Adding more pages as use cases emerge 2015-02-10 23:03:18 +00:00
Andy Williams 2c3c4f504d elm_code: Tidy up some unused code and fix up some focus management 2015-02-10 23:02:45 +00:00
Andy Williams 9f6f9a52ff Fix a few warnings and possible build issues 2015-02-08 00:55:51 +00:00
Andy Williams d8bdb6b892 Finally fix make distcheck - clean up Makefiles properly 2015-02-07 16:05:42 +00:00
Andy Williams e146890b40 Fix issues with distcheck.
Only remaining is a permissions problem with skeleton - will be fixed soon.
2015-02-06 23:45:50 +00:00
Andy Williams f83c43df0b elm_code: Bring in line numbers and a left gutter
This styling makes it easier to see that symbols are not part of the text
but also makes line numbers part of the widget and they can be easily
switched on or off.
2015-02-03 13:59:50 +00:00
Andy Williams fb8a4351b7 Fix the tests to work with widget improvements 2015-02-03 13:55:20 +00:00
Andy Williams dd47f60ed5 Correctly lookup icon paths - @fix T2044.
Set up elm with the appropriate compile option variables.
2015-02-02 23:52:04 +00:00
Andy Williams c22f0d2a0a elm_code: Update style and alignment of gutter 2015-01-29 14:05:20 +00:00
Andy Williams ff72fa0651 elm_code: And complete the line number render first case.
Next some styling would indeed be nice...
2015-01-29 00:50:07 +00:00
Andy Williams 4486e7244b elm_code: initial work on line numbers 2015-01-29 00:36:28 +00:00
Andy Williams cc495a2131 elm_code: Fix click calculations.
We must take into account our scroll position and also where we are positioned
within the screen layout
2015-01-28 22:38:49 +00:00
Andy Williams 545ecc5182 Add proper gravity control when lines are being added to the widget.
Most useful will be (0.0, 1.0) which will cause the display to act like 'tail'.
2015-01-28 14:16:46 +00:00
Andy Williams e7be4523b4 Merge branch 'master' into elm_code
Conflicts:
	elm_code/lib/elm_code_widget.c
2015-01-28 00:43:57 +00:00
Andy Williams 876faa4eb5 elm_code: update scroller so content fills space.
We want to extend backgrounds under scrollbars but only scroll if it's too big.
2015-01-28 00:39:56 +00:00
Andy Williams 4b0350c205 elm_code: When appending lines ignore widget size now we're scrolling 2015-01-28 00:20:58 +00:00
Andy Williams fc43214208 elm_code: Update resizing to reflect only the space that's required 2015-01-27 22:13:59 +00:00
Andy Williams ad0d199f36 Allow up/down/left/right to participate in focus control.
When we cannot move within the cursor availability then note it
the callback from elm will see if the event should be propagated so we
report the veto when we're contained or allow propagation when we overrun
2015-01-27 17:02:45 +00:00
Stephen Houston 78790f8fd3 Elm_Code: Keep up with min size so scroller works properly. 2015-01-27 10:43:32 -06:00
Andy Williams 45a6b3880b And document the wiget API 2015-01-26 23:09:22 +00:00
Andy Williams c91fb02a5a Bind up/down/left/right to cursor control.
Add a veto callback that blocks the up/down hitting the focus manager. This needs to be improved so once we hit the top / bottom it will pass on
2015-01-26 19:46:30 +00:00
Andy Williams d9663a6b3d Merge in key_down fixes from branch 'devs/ajwillia-ms/elm_code' 2015-01-26 19:06:27 +00:00
Andy Williams bc69b360bc Refactor eo widget2 to widget - update in edi too 2015-01-26 19:05:34 +00:00
Stephen Houston 0a279a34df Elm_Code: For box to get key down, it needs to have a child receiving key down. 2015-01-26 10:28:04 -06:00
Andy Williams ebcbde4882 Port everything to use new widget API. Remove old widget API 2015-01-26 14:00:37 +00:00
Andy Williams 6e57210c3a Manipulate the position of the cursor.
When clicking in edit mode just change the position of it to where was clicked.
Known issue that this does not work with the keyboard
2015-01-25 23:15:37 +00:00
Andy Williams 3c9e554b7b elm_code: Add focus support for the elm_code widget.
Hook into the internal elementary API to be part of the focus chain
2015-01-25 17:18:21 +00:00
Andy Williams 29d31ad9f1 Complete port of elm_code widget to eo as widget2 2015-01-24 22:07:00 +00:00
Andy Williams eec17b5904 Fix eo and regen to generate the right code based on okra's changes.
We need to inherit from Elm_Box and not get in the way of smart resizing...
2015-01-24 08:26:09 +00:00
Stephen Houston 82e57792ca Elm_Code_Widget2: Inherit from box instead of layout since a layout is not provided. 2015-01-23 20:35:14 -06:00
Andy Williams aeadf18b06 Merge branch 'master' into elm_code 2015-01-23 23:42:07 +00:00
Andy Williams 1bd963c084 install our test diff for elm_code_test binaries 2015-01-23 23:41:53 +00:00
Andy Williams 49512b1d31 Experimental eo commit - structure in place and it's resizing but won't render 2015-01-23 22:55:13 +00:00
Andy Williams 0c4ce5afd7 Merge in master 2015-01-17 22:08:16 +00:00
Andy Williams a7cf4ffdbf Add a click handler for lines in a widget 2015-01-17 19:57:15 +00:00
Andy Williams 8a9c645353 Tidying some more headers to try and get windows builds working 2015-01-10 17:55:04 +00:00
Andy Williams d7a9c351f4 Allow up/down/left/right to participate in focus control.
When we cannot move within the cursor availability then note it
the callback from elm will see if the event should be propagated so we
report the veto when we're contained or allow propagation when we overrun
2015-01-27 14:34:11 +00:00
Andy Williams e179b349bd Disable NLS by default when cross compiling, remove broken need for libintl 2015-01-04 14:07:35 +00:00
Andy Williams d11e94f0fe Elm_Code now compiling on Windows, thanks to Vincent Torri for the patch.
Next to tackle some non-standard EDI code to complete the compilation
2015-01-04 12:00:40 +00:00
Andy Williams 74a1333620 Update various headers to use Elm_Code to load all our public headers and fix a few build glitches 2014-12-24 18:16:38 +00:00
Andy Williams 344e2e8eca Remove circular include of the elm_code_file.h header 2014-12-24 18:06:51 +00:00
Andy Williams ad3d545415 Fix up headers and tests to remove the exposure of some private methods.
Add some documentation whilst we're there too
2014-12-05 09:39:40 -06:00
Andy Williams 13064e06c6 Add a cursor to the view.
Create a backing data structure to start tracking more useful widget information
2014-12-05 09:20:11 -06:00
Andy Williams 688a89fc75 Merging in refactoring of elm_code file lookups and edi mime lookups.
Elm_Code file no longer required for elm_code to function (in memory is created automatically).
2014-11-28 23:53:23 +00:00
Andy Williams 888e4217ec Use an in-memory file for new elm_codes by default.
This is overridden as before by calling elm_code_file_open which will free the previously set file on that elm_code instance
2014-11-28 08:55:42 +00:00