Method, computer program product and device for determining input areas on a graphical user interface
The method associates input areas with operation levels and blocking types to accurately determine affected areas, enhancing user interface controllability by correctly directing inputs, even in overlaps, without needing global process knowledge.
Patent Information
- Application Number
- DE102017000569
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2017-01-23
- Publication Date
- 2025-07-10
- Estimated Expiration
- 2037-01-23
AI Technical Summary
Existing human-machine interfaces struggle to accurately determine which input areas are affected by a user input when they overlap, leading to inconsistent or incorrect handling of user inputs.
A method and apparatus that associate each input area with an operation level, assignment to a GUI area, and a blocking type, allowing for the determination of which input areas are affected by a user input based on these parameters, and a computer program product to implement this method.
Enhances the controllability of input areas by ensuring that user inputs are correctly directed to the intended input areas, even in cases of overlap, without requiring global knowledge of all processes, thus improving user interface functionality.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical FieldThe present disclosure relates generally to the field of human-machine interfaces. Specifically, the determination of input areas on a graphical user interface that are affected by a user input is described. Furthermore, a corresponding computer program product and a corresponding device are specified.BackgroundUsing a human-machine interface, MMS, a user may interact with a machine, such as a processor-controlled device. Via the MMS, the user can, for example, control the device, retrieve information or intervene in sequences in the device. A common implementation of an MMS involves the presentation of a graphical user interface (GUI) on a display device in combination with a position sensitive input element (such as a computer mouse or a touch sensitive surface) through which the user can make input.One or more application programs can usually run on an operating system of a processor-controlled device. Each of these application programs, and also the operating system itself, can evaluate user inputs to control a programmed operation. Common operating systems and application programs are designed to display a GUI with a plurality of input areas. When such input areas overlap, a user input in the overlap area of the GUI is to be evaluated as input by a single, subset, or all input areas as required.FIG. 1 shows a display device 10 with a GUI 12, which comprises a first actuation plane 14 (dotted lines) and a second actuation plane 18 (dashed lines). The first actuation plane 14 comprises three input areas 16 a, 16 band 16 c. The second actuation level 18 comprises an input area 19. GUI 12 represents input areas of the second actuation level 18 as a semi-transparent superposition over input areas of the first actuation level 14. The input area 16 bherein overlaps with the input area 19. If a user input is made in the area of the middle input area 16 b, both input areas 16 b, 19 should now be affected by the input. For example, the input area 19 is to be hidden and a button of the input area 16 bto be operated.As a rule, user inputs are detected by a component managing the inputs and are forwarded to the programs assigned to the input areas concerned (here the input areas 16 b, 19). However, if the input areas of the programs overlap, it must be determined which of the input areas is to be affected by the input.The use of focused input regions (also called windows in this context) is known from the prior art for this purpose. Here, a certain window is designated as a focused window. Inputs are passed exclusively to this focused window. If another window is to be operated, it must be previously designated as a focused window (e.g., by a separate user input) before it can be operated.Another possibility is that all programs receive all inputs. However, in the event of an overlap of input areas, it must always be decided for which input area the user input was intended. In addition, when a plurality of overlapped input areas are to use an input as such, it is necessary to further decide which of the input areas the user input was intended for.US 2014 0 320 440 A1 describes a tactile sensation providing apparatus including a touch sensor, a tactile sensation providing unit capable of vibrating a touch surface of the touch sensor, a display unit, and a control unit, wherein the control unit controls the display unit to display an image. Further, the control unit causes a tactile sensation provided by the tactile sensation providing unit for a pixel in the image, so that upon detecting a touch at a position corresponding to the pixel, the control unit performs a process associated with the pixel.US 2013 0 222 257 A1 describes a method and a device for operating a portable terminal. The method includes searching for a view ("view") having a touch-sensitive area among two or more displayed views, determining whether a bypass function is set for the searched view, and determining whether to execute a command corresponding to the view depending on whether the bypass function is set.Short tear-offThe present disclosure is based on the object of improving the controllability of the functionality of input areas in connection with user inputs.According to a first aspect, a method for determining input areas affected by a user input at a graphical user interface, GUI, is provided. For each input area, the following are associated with each other: (i) an operation level of the input area, wherein a plurality of operation levels are defined in an ordered ranking, (ii) an assignment of the input area to an area of the GUI, and (iii) a blocking type of the input area indicating whether a user input is blocked to a lower-ranking operation level. The method includes detecting a user input, wherein the user input is associated with an input position on the GUI. In addition, the method comprises determining at least one input area that comprises the input position. The method further comprises evaluating, at least for the highest-ranked determined input range, the blocking type associated with that input range to determine whether the user input to at least one lower-ranked input range comprising the input position is blocked.According to the present disclosure, a lower-rank (higher-rank) input range is such an input range to which a higher-rank (lower) operation level is assigned as compared to another input range.Each input area may be associated with a process. A process may include a running program (including an operating system) or a routine of a running program. A plurality of input areas may be associated with a particular process. Input areas of the same process may be located at different actuation levels. During the runtime of a process, the process can dynamically open or close one or more input areas. Processes can also be opened and closed in a dynamic manner.An input area opened by a process, at which an input can be made subject to blocking by higher-rank input areas, is also referred to below as an active or registered input area. A running process is also referred to as an active process.The method may include signaling the detected user input to one or more processes associated with an input area affected by the user input. Whether or not an input area is affected by a user input typically depends on the position of the input area with respect to the input position and, if applicable, on the blocking type of an input area of higher rank.A particular process may be responsive to the user input signaled to it (e.g., by closing or changing the input area associated with it that is affected by the user input, or by performing particular operations). Alternatively, a particular process may discard the user input signaled to it without responding to it.In one implementation, the method includes signaling the user input to at least the process of the highest-ranked determined input range. The method may further comprise signaling the user input also to the process of at least one lower ranked determined input range for which the user input is not blocked by a higher ranked determined input range.A first input region and a lower rank second input region may overlap at least partially (but also fully) on the GUI. In this case, at least one of the input areas (namely the lower-order input area) cannot be displayed in the overlap area or (for example in the case of partial transparency of the higher-order input area) in a state which is changed with respect to its normal manner of display. Thus, the first input area can be displayed partially transparently over the second input area, for example, in the overlap area. The input position can lie in the overlap region.According to a first variant, the user input to the lower-rank actuation level cannot be blocked due to the blocking type of the first input area. In this case, the user input may be signaled to the processes associated with the first input area and the second input area.According to another variant, due to the blocking type of the first input area, the user input to the lower-rank actuation level may be blocked. In this case, the user input may be signaled to the process associated with the first input area and not signaled to the process associated with the second input area.The user input may be detected via a human machine interface (MMS). For example, the user input can be detected at a touch-sensitive surface. The touch-sensitive surface can be part of a display device on which the GUI is displayed. Alternatively, the user input can be detected by gesture recognition. Further MMS implementations for detecting the user input are also conceivable (e.g. by detecting a mouse click or by means of finger tracking by a camera).Each input area may be defined by coordinates that are uniquely assignable to coordinates of the GUI. In one variant, the coordinates in which the input regions are specified match the GUI coordinates. In another variant, there is a unique mapping rule (e.g. in the form of a coordinate transformation matrix). The coordinates can be respectively Cartesian coordinates, polar coordinates or other coordinates. The coordinates may describe a geometric shape of each input region (such as a rectangle, a polygon, a circle, or an ellipse).In the steps of ascertaining and / or evaluating (and optionally in alternative or further steps), a data structure can be used which, for each input area, associates its actuation level, assignment to a GUI area and blocking type with one another. The data structure may take the form of a table of rows and columns, for example. In this case, each input area may be assigned a row of the table. Furthermore, the table can have one column for each of the actuation level, the assignment to a GUI area and the blocking type per input area. The order of the column entries may correspond to the ranking of the input areas.In addition, the data structure for each input area can also relate the corresponding parameters (i.e. actuation level, assignment to a GUI area and blocking type) to a process assigned to the input area. In this way, in the case of a user input determined for a specific input area, the associated process can be derived from the data structure to which the user input (subject to blocking) is to be signaled.In addition, the data structure may be continuously updated (e.g., during a runtime of at least one process). The updating can be effected by this new input area being newly registered in the data structure when a new input area is opened by an associated process and / or by this registered input area being deleted in the data structure when an input area registered in the data structure is closed by an associated process (or the associated process is closed). Starting and / or closing a process may be the result of a user input.A continuous update of the data structure is also possible in that during the runtime of a specific process, parameter changes result for an input area assigned to the process. For example, for a registered input area, its actuation level, its shape (and thus its assignment to a GUI area) and / or its blocking type can change.According to a second aspect, a computer program product is specified, wherein the computer program product has program code for carrying out the method presented here when the program code is executed on a processor. Furthermore, the computer program product can be stored on a storage medium readable by means of the processor. The storage medium may also store the data structure that, for each input area, associates its actuation level, assignment to a GUI area and blocking type with one another.According to a third aspect, an apparatus for determining input areas affected by a user input on a GUI is provided. For each input area, the following are associated with each other: (i) an operation level of the input area, wherein a plurality of operation levels are defined in an ordered ranking, (ii) an assignment of the input area to an area of the GUI, and (iii) a blocking type of the input area indicating whether a user input is blocked to a lower-ranking operation level. The apparatus further comprises a processor configured to detect a user input, wherein the user input is associated with an input position on the GUI. In addition, the processor is configured to ascertain at least one input area that includes the input position. Furthermore, the processor is configured to evaluate the blocking type assigned to this input area at least for the highest-ranked input area determined in order to determine whether the user input to at least one lower-ranked input area comprising the input position is blocked.The apparatus may further include a display device configured to display the GUI. In addition, the device may include a human-machine interface configured to generate the user input.Brief Description of the DrawingsFurther advantages, details and features of the present disclosure result from the following description of exemplary embodiments and from the figures. The following are shown: FIG. 1 is a schematic view of a GUI with overlapping input areas; FIG. 2 shows a schematic view of an embodiment of a device for determining input areas affected by a user input; FIG. 3 shows a flow chart of a first exemplary embodiment of a method for determining input regions which are affected by a user input; FIG. 4 shows an embodiment of a data structure in the form of a table; FIG. 5 is a schematic illustration of input areas of a GUI lying at different logic actuation levels; FIG. 6 shows a top view of the GUI according to FIG. 5 ; FIG. 7 shows a flow chart of a second exemplary embodiment of a method for determining input regions which are affected by a user input; and FIG. 8 shows an internal view of a motor vehicle with the device for ascertaining input regions presented here.DETAILED DESCRIPTIONIn the drawings, like or similar elements are provided with corresponding reference numerals.FIG. 2 shows a schematic view of an embodiment of a device 20 for determining input areas affected by a user input.The apparatus 20 includes at least one processor 22 and at least one memory 24 (e.g., a semiconductor memory or a hard disk) connected thereto.The memory 24 stores a computer program product having program code that can be executed by the processor 22.Referring to FIG. 2, the apparatus 20 further includes a display device 26 (e.g., an LCD or other screen) coupled to the processor 22. The processor 22 is operable to drive the display device 26 to present a graphical user interface (GUI) 28 thereon. The GUI 28, in turn, may include one or more input regions 28 a, 28 b, etc. Each input region 28 a, 28 bis associated with a process executing on the processor 22 (e.g., an application program, an operating system program, a program routine, etc.). The input areas 28 a, 28 bmay be configured as buttons ("buttons"), sliders, sliders, (e.g., click-away) pop-ups, (e.g., click-away) windows, etc.A user input can be made in each of the input areas 28 a, 28 bby means of a human-machine interface (MMS) 29 of the device 20. Depending on the configuration of the MMS 29, the user input may be a touch input (e.g., when the display device 26 is provided with a touch-sensitive surface), or a mouse click, a recognized gesture, etc.Furthermore, a data structure 24 ais stored on the memory 24, which data structure associates a plurality of parameters assigned to the respective input area 28 a, 28 bfor each input area 28 a, 28 bregistered in the data structure 24 a.These parameters include a first parameter that indicates an actuation level of the respective input region 28 a, 28 b. The actuation levels are defined in an ordered ranking such that one input region 28 amay have the same, higher, or lower ranking than another input region 28 b.Furthermore, the parameters in the data structure 24 acomprise a second parameter which specifies an assignment of the respective input area 28 a, 28 bto an area of the GUI 28. For example, the second parameter may indicate the area of the GUI 28 where the respective input area 28 a, 28 bis to be displayed. The second parameter can be specified, for example, by a set of Cartesian coordinates.In addition, the parameters in the data structure 24 acomprise a third parameter that specifies a blocking type of the respective input area 28 a, 28 b. The blocking type indicates whether user input to a lower rank actuation level is blocked. In its simplest implementation, the blocking type is a binary parameter (yes / no), for example in the form of a flag. Of course, depending on the implementation, the blocking type can also assume more than two values.FIG. 3 shows a flow diagram 30 of a first exemplary embodiment of a method for determining input areas on a GUI that are affected by a user input. Each input area is assigned a process to which user inputs on the corresponding input area can be signaled.The method according to FIG. 3 is described below with reference to the device 20 shown in FIG. 2. It is understood that the method can also be carried out by a device set up in another way.In a step 32, the processor 22 continuously checks whether a user input made by the MMS 29 can be detected with respect to the GUI 28. If a user input is detected in step 32, an input position on the GUI 28 is associated with the user input. The input position may be indicated in the form of coordinates of a coordinate system of the GUI 28, for example.After detecting a user input in step 32, those input areas 28 a, 28 bcomprising the input position are determined in a subsequent step 34. For this purpose, the processor 22 matches the determined input position with the GUI areas which are specified for all input areas 28 a, 28 bregistered in the data structure 24 ain this data structure 24 a. It is assumed in the following by way of example that the two input areas 28 a, 28 bare registered in the data structure 24 a, wherein the (higher-order) input area 28 a overlaps the (lower-order) input area 28 band the input position lies in the overlap area. On the other hand, should the input position not be in any of the input areas 28 a, 28 b, the method may return to step 32 or otherwise react.As explained above, different actuation levels are assigned to the input areas 28 a, 28 bin the data structure 24 a, wherein a rank is assigned to each of the actuation levels and thus also to the input areas 28 a, 28 b. The input area(s) 28 a, 28 bdetermined in step 34 are sorted in a list by the processor 22 in a step 36 according to their rank. Since the input area 28 ahas a higher rank than the input area 28 b, the input area 28 aconstitutes the first list entry in the present example.In a step 38, the processor 22 signals the user input to the process of the highest-ranked determined input region 28 a(e.g., in the form of its coordinates and / or as a mere event). The processor 22 may determine the process associated with the input region 28 a, for example, from the data structure 24 a. The corresponding process then evaluates the user input signaled to it and continues according to its process-specific circumstances. Thus, the user input signaled to it can simply be discarded by the process or the process can take a specific action.In a step 40, the processor 22 then re-accesses the data structure 24 aand evaluates the associated blocking type for the highest-ranked input region 28 athat could be determined in step 34. In this case, it is determined whether the user input to at least one lower-order input area which comprises the input position (i.e. here to the input area 28 bin accordance with FIG. 2 ) is blocked. If the blocking type is blocking, user input cannot be applied to lower actuation levels. In this case, the processor 22 terminates the evaluation of the user input in a step 42 and returns to step 32.If, however, the blocking type of the determined highest-ranked input area is not blocking, then a step 44 determines whether further, lower-ranked input areas could be determined in step 34. If there are no lower-ranked determined input ranges, the evaluation of the user input is ended in step 42 and the method returns to step 32.However, if at least one further lower-order input area is present (i.e. input area 28 bin this case) determined in step 34, processor 22 signals the user input to the process of this input area in a step 46. To determine the corresponding process, the data structure 24 aexcited above can again be accessed. Thus, if the user input was last signaled to the process of the highest-ranked input region 28 a, then the user input is then signaled to the process of the highest-ranked input region 28 bin the second-highest ranking, provided the highest-ranked input region 28 ahas no blocking characteristics.Subsequently, in step 40, the blocking type assigned to the lower-order input area 28 bis now evaluated. If the blocking type is blocking, then the evaluation is ended in step 42. However, if the blocking type is not blocking, then it is determined in step 44 whether a lower rank input range has been determined (i.e., an input range having a lower rank than the input range 28b). If, in turn, a lower-ranking input area exists, steps 46, 40 and, if appropriate, step 44 are repeated for this input area as well if this input area does not have blocking properties.As long as there are more lower-order input areas in the list according to step 36, which also do not have blocking properties, the loop is continued with steps 46, 40 and 44. As soon as there are no more lower-ranking input areas present and / or an input area has blocking properties, the loop and also the evaluation of the user input are ended in step 42.FIG. 4 shows a table of an embodiment of a data structure 24 ain the form of a table in which a plurality of input areas are registered. Each active input area of an active process is associated with a row of the table. The table has a column for each of the operation level, the assignment to a GUI area, and the blocking type. Further, an optional column is provided for a process ID.Listed in column 52 are input range IDs that uniquely identify each active input range.Column 54 lists the actuating level associated with an input area. Since an actuation level may have a plurality of input sections, column 54 may have a multiple designation of the same actuation level in different rows.Column 56 indicates which blocking type the corresponding input area has. Since the blocking type in the present exemplary embodiment can be blocking or non-blocking only, it is a binary parameter. For example, the blocking type may be designated 0 for non-blocking and 1 for blocking.Column 58 defines the assignment of an input area to an area of GUI 28. The input areas are specified via coordinates for a Cartesian coordinate system of the GUI 28. In the exemplary embodiment, the number of coordinate pairs defines a basic shape of the input region.In FIG. 4, the input areas with the IDs 1, 2, 4 and 5 each have only two coordinate pairs. If only two pairs of coordinates are specified, the basic shape of the input region is a rectangle whose edges are parallel to the coordinate axes of the GUI 28. Here, the first pair of coordinates denotes the coordinates of the vertex of the right corner with the lowest coordinate values (for example, upper left if the coordinate values increase toward right and downward). The second pair of coordinates denotes the width at the first position of the tuple and the height of the rectangle at the second position of the tuple. For the input area with ID 1 (see FIG. 4 ), the upper left corner of the rectangle is at the origin (0;0) of the coordinate system. With a height and width of 20 units each, the corner points of the rectangle are thus located on the coordinates (0;0), (20;0), (20;20) and (0;20).If the number of coordinate pairs is greater than two, the coordinates describe vertices of a polygon. The input area with ID 3 (see FIG. 4 ) has four points. Thus, the input area on GUI 28 describes an irregular quadrangle, with the vertices of the quadrangle having coordinates (0;0), (0;20), (20;20), and (30;50).Finally, column 59 indicates the process associated with a particular input area. A process can be assigned a plurality of input areas which can optionally also lie on different actuation planes. The process ID indicated in column 59 allows processor 22 to locate the process to which the user input is to be signaled for an input area affected by a user input.The data structure 24 aillustrated in FIG. 4 is continuously updated by the processor 22 during the runtime of processes. Upon opening a new input area by an associated process, this new input area is newly registered in the data structure 24a. Upon closing an input area registered in the data structure 24a by an associated process (or closing the associated process), this registered input area in the data structure 24a is deleted.Further, during the run-time of processes, the column entries 54, 56, 58 for individual input regions may change. For example, when a button of an input area formed as an operation window is moved to the background, the parameter of the operation level in the column 54 is changed to a lower-rank value accordingly. If, for example, an input area of a process that has not been blocked up to now is intended to block user inputs at lower-order actuation levels, the blocking type of the corresponding input area is changed from 0 to 1 in column 56. In column 58, if a triangular shape of an input area is to be changed to an octagonal shape, three coordinate pairs of the triangular shape are replaced with eight coordinate points of the octagonal shape.In a cover flow representation, for example, input areas in the form of music bubble covers are positioned virtually in a row. A user can browse the selection, with individual album cover being perspectively advanced or tilted backwards again. In this case, the size, shape and, if appropriate, actuation plane and, if appropriate, blocking type of the respective input region change. These changes can be taken into account by means of real-time updating in the data structure 24 a.FIG. 5 shows a schematic representation of input areas of a GUI 28 lying at different logic actuation levels; FIG. 6 shows a plan view of the GUI 28 according to FIG. 5.In the exemplary embodiment, the GUI 28 comprises three actuation levels 62, 64 and 66 (see FIG. 5 ), wherein the logic top actuation level 62 has the highest rank, the logic middle actuation level 64 has the second highest rank and the logic bottom actuation level 66 has the third highest rank. Each of the actuation levels 62, 64, 66 may correspond to a representation level of the GUI 28 or may be a separate logical entity. Furthermore, three different user inputs A, B and C are shown in FIGS. 5 and 6, which differ by their input positions.The first operation plane 62 includes a first input portion 68 aand a second input portion 68 bwhich both have a rectangular shape and a non-blocking type. The second operation plane 64 includes a third input region 70 having a rectangular shape and a blocking blocking type. The third operation plane 66 includes a fourth input region 72 having a rectangular shape and a non-blocking type.When evaluating the user input A, the input areas are first determined which comprise the input position of the user input A. Of the four input areas 68 a, 68 b, 70, 72, only the first input area 68 aincludes the input position of the user input A. Thus, sorting the determined input areas only yields the highest-ranked input area 68 a. The user input A is signaled to the process of the input area 68 a. Then, the blocking type of the input area 68a is detected. Since the blocking type is non-blocking, it is checked whether more lower-rank input ranges could be detected. However, since no further determined input areas are present, the evaluation of the user input A is ended.When evaluating the user input B, the input areas are first determined which comprise the input position of the user input B. Of the four input areas 68 a, 68 b, 70, 72, the third input area 70 and the fourth input area 72 comprise the input position of the user input B. Thus, sorting the determined input areas yields the highest-ranked input area 70 and the lower-ranked input area 72. Then, the blocking type of the input area 70 is detected. Since the blocking type is blocking, the evaluation of the user input B is then ended. The user input B is not signaled to the lower-rank input area process 72.The input area 70 can be, for example, a button for confirming an error message. Since the acknowledgement should not have any influence on other operating elements, the input area 70 has blocking properties, so that the user input B cannot be evaluated as input by the lower-ranking input area 72 (e.g. a window of an Internet browser).When evaluating the user input C, the input areas are again first determined which comprise the input position of the user input C. Of the four input areas 68 a, 68 b, 70, 72, the second input area 68 b, the third input area 70 and the fourth input area 72 comprise the input position of the user input C. Thus, sorting the determined input areas yields the highest-ranked input area 68 b, the highest-ranked input area 70 and the lowest-ranked input area 72.The user input C is first signaled to the process of the highest-ranked input area 68 b. Then, the blocking type of the input area 68 bis detected. Since the blocking type is non-blocking, the user input C is signaled to the process of the closest input range, here the furthest input range 70. Then, the blocking type of the wide-range input area 70 is determined. Since the blocking type is blocking, the evaluation of the user input C is then ended. The user input C is thus not signaled to the process of the low-rank input area 72.The input area 70 may be, for example, a selection list of music titles. A window with a volume control is shown semi-transparent via the selection list. The user input C may be an input to a music title, the music title being overlapped by the volume control window. The input area 68 bof the window has non-blocking properties, so that the user input C is nevertheless likewise evaluated by a selection list process (and can be evaluated, for example, as selection of a music title, while a volume control process discards the input, on the other hand, since it could not be evaluated as volume control).FIG. 7 shows a flow chart of a second exemplary embodiment of a method 80 for ascertaining input regions. The second exemplary embodiment differs substantially from the first exemplary embodiment according to FIG. 3 in that the ascertainment of input regions which comprise the input position is carried out in later steps.In step 82, a check is made to see if a user input is detected at the GUI 28. When user input is detected, the user input is associated with an input position on the GUI 28. In step 84, the highest-ranked input area including the input position is determined. For this purpose, it is checked in descending order of rank on the basis of the data structure 24 a whether an actuation level has an input region which comprises the input position. In step 86, the user input is signaled to the process of the determined highest-ranking input range. Then, in step 88, the associated blocking type is evaluated for the highest-ranked input range. If the blocking type is blocking, user input cannot be applied to lower actuation levels. In this case, the evaluation of the user input is ended in step 90.If, however, the blocking type of the determined highest-ranked input area is not blocking, then in step 92 it is determined from data structure 24 a whether lower-ranked actuation levels are present. If these are present, a check is made in step 94 to determine whether an input area of this actuation level comprises the input position. If no input area of the operation level detects the input position, it is checked in step 92 whether there is another lower-rank operation level, and it is checked in step 94 again whether an input area of such an operation level detects the input position. These two steps are repeated until either there is no lower-order actuation level and the evaluation in step 90 is ended or until there is a lower-order actuation level which comprises an input region which in turn comprises the input position.In the latter case, in step 96, that input region of the actuation plane which detects the input position is determined. In step 98, the user input is signaled to the process of the determined input area. Then, in step 88, the associated blocking type is evaluated for this input range. If the blocking type is blocking, user input cannot be applied to lower actuation levels. In this case, the evaluation of the user input is ended in step 90. If, however, the blocking type of the determined highest-ranked input range is not blocking, then it is again determined in step 92 whether lower-ranked actuation levels are present.As long as there are further lower rank actuation levels that include input ranges including the input position and further do not have a blocking blocking type, a loop including steps 92, 94, 96, 98 and 88 continues. As soon as there are no more lower-order actuation levels and / or no such lower-order actuation levels which comprise input areas comprising the input position and / or an input area has a blocking blocking type, the loop and thus also the evaluation of the user input are ended in step 90.It is advantageous in this exemplary embodiment that higher-ranking actuation levels do not have to be determined until it is found that the user input to be evaluated is not blocked by higher-ranking input ranges.FIG. 8 shows an internal view of a motor vehicle 100 with the device 20 for determining input areas presented here. The device 20 has a touch-sensitive display device 104 as a human-machine interface. However, other human-machine interfaces such as a tracking ball, a mouse or finger tracking by a camera are also possible.The device 20 is capable of triggering a motor vehicle process 106. The motor vehicle process may be, for example, a function of a radio, a navigation system, an infotainment system, or a radiotelephone.If, for example, a traffic jam warning is received during operation of the device 20, the user is requested to acknowledge the traffic jam warning in an input area designed as a pop-up. The entry range of the congestion warning has the highest rank. Since the congestion warning is unrelated to the previously activated processes (e.g., a radio control panel), the corresponding input area blocks user input for lower-rank input areas (e.g., a volume controller in the radio control panel that is below the pop-up of the congestion warning).Another example is a representation of input areas associated with a telephone process. Semi-transparent navigation information of a navigation process is blended in via the input areas of the telephone. The navigation process also has input areas whose rank is higher than the rank of the input areas of the telephone process. However, the input areas of the navigation process do not have a blocking blocking blocking type. Thus, a user can end a telephone call, for example, by means of a user input "through the guidance".As can be seen from the preceding exemplary embodiments, the selective blocking approach proposed here improves the controllability of the functionality, in particular of overlapping input regions in connection with user inputs. In particular, it is not necessary for all processes with active input areas to have global knowledge of all other processes. Rather, a global data structure or similar central implementation readily enables the input areas (and processes associated therewith) affected by user input to be determined.In the examples presented, different features of the present disclosure have been described separately from one another and in certain combinations. However, it is understood that many of these features can be freely combined with one another, where this is not explicitly excluded.
Claims
A method of detecting input areas (28a, 28b) affected by user input at a graphical user interface, GUI, (28), wherein for each input area (28a, 28b) the following are associated with one another: (i) an actuation level of the input area (28a, 28b), wherein a plurality of actuation levels are defined in an ordered ranking; (ii) an assignment of the input area (28a, 28b) to an area of the GUI (28); and (iii) a blocking type of the input area (28a, 28b) indicating whether user input is blocked to a lower-ranking actuation level; the method comprising: detecting (32) user input, wherein the user input is assigned an input position on the GUI (28); determining (34) at least one input area (28a, 28b) comprising the input position; and evaluating (40), at least for the highest ranked determined input area (28a, 28b), the blocking type associated with that input area (28a, 28b) to determine whether user input to at least one lower ranked input area (28a, 28b) comprising the input position is blocked; wherein each input area (28a, 28b) has a process associated therewith, and the method further comprises: signaling (38) the user input to at least the process of the highest ranked determined input area (28a, 28b); and signaling (46) the user input also to the process of at least one lower ranked determined input area (28a, 28b) for which the user input is not blocked by a higher ranked determined input area (28a, 28b).The method of claim 1, wherein a first input area (28a, 28b) and a lower rank second input area (28a, 28b) at least partially overlap and the input position is in the overlap area.The method of claim 2, wherein due to the blocking type of the first input area (28a, 28b), the user input to the lower rank actuation level is not blocked, the user input being signaled to the processes associated with the first input area (28a, 28b) and the second input area (28a, 28b).Method according to one of Claims 2 or 3, wherein the first input region (28a, 28b) is displayed in a partially transparent manner over the second input region (28a, 28b).The method of any preceding claim, wherein the user input is detected at a touch-sensitive surface.The method of any one of claims 1 to 5, wherein the user input is detected by gesture recognition.The method of any preceding claim, wherein each input region (28a, 28b) is defined by coordinates uniquely attributable to coordinates of the GUI (28).Method according to one of the preceding claims, wherein a data structure (24b) is used in the steps of ascertaining (34) and / or evaluating (40), said data structure associating, for each input area (28a, 28b), its actuation level, assignment to a GUI area and blocking type with one another.The method of claim 8, wherein the data structure (24b) is in the form of a table, each input area (28a, 28b) being associated with a row of the table, the table each having a column (54, 56, 58) of actuation level, association with a GUI area and blocking type.Method according to Claims 8 and 9, wherein the data structure (24b) is updated continuously by - this new input area (28a, 28b) being newly registered in the data structure (24b) on opening of a new input area by an associated process; and / or - this registered input area (28a, 28b) being deleted in the data structure (24b) on closing of an input area (28a, 28b) registered in the data structure (24b) by an associated process or closing of the associated process.A computer program product comprising program code for performing the method of any of claims 1 to 10 when the program code is executed on a processor (22).The computer program product of claim 11 stored on a storage medium (24) readable by the processor (22).Device (20) for determining input areas (28a, 28b) affected by a user input at a graphical user interface, GUI, (28), wherein the device (20) is configured to perform a method according to one of claims 1 to 10.The apparatus (20) of claim 13, further comprising a display device (26) configured to display the GUI (28); and a human machine interface (29) configured to generate the user input.
Citation Information
Patent Citations
Apparatus and method of handing a touch input in a terminal
US20130222257A1
Tactile sensation providing device
US20140320440A1